Balanced Substring
Posted 啦啦啦天啦噜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Balanced Substring相关的知识,希望对你有一定的参考价值。
题解:前缀和思想(菜菜菜,我为什么这么菜,太菜 了,不能忍不能忍,菜菜菜)
这和前缀和,你把他理解成折线图(就和股票一样),然后容易发现相等的地方就是答案(训练是画了折线图也没看出来,菜菜菜,太菜了)。然后遍历一下就行了
代码:
#include <bits/stdc++.h> using namespace std; const int maxn=1e5+5; char a[maxn]; int b[maxn]; int pre[maxn]; int vis[maxn*2+10]; int main() { int n; while(~scanf("%d",&n)) { memset(b,0,sizeof(b)); memset(pre,0,sizeof(pre)); memset(vis,-1,sizeof(vis)); scanf("%s",a+1); int maxe=0; // printf("%d ",pre[0]); for(int i=1;i<=n;i++){ if(a[i]==‘0‘) b[i]=-1; else b[i]=1; pre[i]=pre[i-1]+b[i]; // printf("%d ",pre[i]); } // puts(""); for(int i=0;i<=n;i++){ if(vis[pre[i]+n]==-1)vis[pre[i]+n]=i; else maxe=max(maxe,(i-vis[pre[i]+n])); } // for(int i=0;i<13;i++){ // printf("%d==%d\n",i,vis[i]); // } // if(maxe<0) maxe=0; printf("%d\n",maxe); } return 0; } /* 6 000111 8 11010111 3 111 */
以上是关于Balanced Substring的主要内容,如果未能解决你的问题,请参考以下文章
CodeForces - 873B Balanced Substring(思维)
[Codeforces 873B]Balanced Substring
Educational Codeforces Round 30 B.Balanced Substring
CF873B Balanced Substring (前缀和)