link

题面真简洁 qaq

 

C Stones

最终一定是连续一段 . 加上连续一段 # 。直接枚举断点记录前缀和统计即可。

 1 #include<bits/stdc++.h>
 2 #define rep(i,x,y) for (int i=(x);i<=(y);i++)
 3 
 4 using namespace std;
 5 
 6 const int N=2e5+10;
 7 int n,cnt0[N],cnt1[N],ans; char s[N];
 8 
 9 int main(){
10     scanf("%d%s",&n,s+1);
11     rep (i,1,n) cnt0[i]+=s[i]=='#',cnt1[i]+=s[i]=='.';
12     rep (i,1,n) cnt0[i]+=cnt0[i-1],cnt1[i]+=cnt1[i-1];
13     ans=n;
14     rep (i,0,n) ans=min(ans,cnt0[i]+cnt1[n]-cnt1[i]);
15     printf("%d\n",ans);
16     return 0;
17 }
View Code

相关文章: