zoukankan      html  css  js  c++  java
  • 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
    ",i,vis[i]);
    //        }
    //        if(maxe<0) maxe=0;
            printf("%d
    ",maxe);
        }
        return 0;
    }
    /*
    6
    000111
    8
    11010111
    3
    111
    */
  • 相关阅读:
    P2426 删数
    P2115 [USACO14MAR]破坏Sabotage
    P2679 子串
    P2979 [USACO10JAN]奶酪塔Cheese Towers
    P1114 “非常男女”计划
    P2105 K皇后
    P4053 [JSOI2007]建筑抢修
    P1294 高手去散步
    P4316 绿豆蛙的归宿
    P2253 好一个一中腰鼓!
  • 原文地址:https://www.cnblogs.com/lalalatianlalu/p/7725881.html
Copyright © 2011-2022 走看看