日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Round #36 (Div. 2 only) B】Safe Spots

發(fā)布時間:2024/6/30 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Round #36 (Div. 2 only) B】Safe Spots 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【題目鏈接】:https://csacademy.com/contest/round-36/task/safe-spots/

【題意】

給你n個數(shù)字構(gòu)成的序列;
每個位置上的數(shù)都由0和1組成;
對于每個0;
假設其位置為i;
如果[i-k..i+k]這個范圍內(nèi)1的個數(shù)不超過1,則稱它合法;
問符合要求的這樣的0的個數(shù).

【題解】

前綴和.
直接獲取sum[i+k]-sum[i-k-1]就是這個范圍里面1的個數(shù)了;
(程序用的是其他方法..維護第i個數(shù)字前k個數(shù)里面有多少個1。以及后面k個數(shù)字里面有多少個1)

【Number Of WA

0

【反思】

第一反應不是前綴和的做法說明我還很菜?

【完整代碼】

#include <bits/stdc++.h> using namespace std; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define LL long long #define rep1(i,a,b) for (int i = a;i <= b;i++) #define rep2(i,a,b) for (int i = a;i >= b;i--) #define mp make_pair #define pb push_back #define fi first #define se second #define ms(x,y) memset(x,y,sizeof x) #define Open() freopen("F:\\rush.txt","r",stdin) #define Close() ios::sync_with_stdio(0)typedef pair<int,int> pii; typedef pair<LL,LL> pll;const int dx[9] = {0,1,-1,0,0,-1,-1,1,1}; const int dy[9] = {0,0,0,-1,1,-1,1,-1,1}; const double pi = acos(-1.0); const int N = 1e5;int n,k,a[N+100],pre[N+100],after[N+100],now;int main(){//Open();Close();cin >> n >> k;rep1(i,1,n)cin >> a[i];now = 0;rep1(i,1,n){pre[i] = now;if (a[i]==1) now++;if (i-k>=1 && a[i-k]==1) now--;}now = 0;rep2(i,n,1){after[i] = now;if (a[i]==1) now++;if (i+k<=n && a[i+k]==1) now--;}int ans = 0;rep1(i,1,n)if (a[i]==0 && pre[i]+after[i]<=1)ans++;cout << ans << endl;return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/AWCXV/p/7626218.html

總結(jié)

以上是生活随笔為你收集整理的【Round #36 (Div. 2 only) B】Safe Spots的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。