题面真简洁 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 }