1393 0和1相等串

2021-09-11 02:49:17 字數 787 閱讀 7985

給定乙個0-1串,請找到乙個盡可能長的子串,其中包含的0與1的個數相等。

收起

乙個字串,只包含01,長度不超過1000000。
一行乙個整數,最長的0與1的個數相等的子串的長度。
1011
2
我發現腦洞一定要大,越大越好,不然有些辦法你想不出來,

如果0和1的個數相等,我們要做的事情就是找到最長的區間[i+1~j]:使得s[i]==s[j];

那麼我們設定乙個陣列a[i]表示數值i出現的最左端的位子,但是這麼設定顯然不行,因為可能有負數的情況,那麼對應設定乙個mid(這也就是為什麼是1003000的原因),表示其為0,那麼-1出現的最左端的位子就是a[mid-1],我們在過程中維護最大值即可,注意:10/01/0000001這樣類似的情況。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

int a[2006000];

char s[2006000];

int main()

ans=max(ans,i-a[mid+sum]);

}printf("%d\n",ans);

return 0;

}

1393 0和1相等串

1393 0和1相等串 基準時間限制 1 秒 空間限制 131072 kb 給定乙個0 1串,請找到乙個盡可能長的子串,其中包含的0與1的個數相等。input 乙個字串,只包含01,長度不超過1000000。output 一行乙個整數,最長的0與1的個數相等的子串的長度。input示例 1011ou...

51Nod 1393 0和1相等串

1393 0和1相等串 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 給定乙個0 1串,請找到乙個盡可能長的子串,其中包含的0與1的個數相等。input 乙個字串,只包含01,長度不超過1000000。output 一行乙個整數,最長的0與1的個數相等的子串的長...

51nod 1393 0和1相等串

給定乙個0 1串,請找到乙個盡可能長的子串,其中包含的0與1的個數相等。input 乙個字串,只包含01,長度不超過1000000。output 一行乙個整數,最長的0與1的個數相等的子串的長度。input示例 1011output示例 2 準備乙個sum,如果碰到0則 1,碰到1則 1.對於每乙個...