1393 0和1相等串
基準時間限制:1 秒 空間限制:131072 kb
給定乙個0-1串,請找到乙個盡可能長的子串,其中包含的0與1的個數相等。
input
乙個字串,只包含01,長度不超過1000000。output
一行乙個整數,最長的0與1的個數相等的子串的長度。input示例
1011output示例
2思路:把0變成-1,然後01相等,那個段的和就是0,然後維護字首和,當字首和為0的時候,我們更新最長的,那麼當當前字首不是0的時候,如果我們知道最前面的和
等於當前值的時候(j),那麼[j+1,i]的和就為0,那麼當前值和最大比較更新。複雜n*log(n);
1 #include2 #include3 #include4 #include5 #include6 #include7 #include
8 #include9 #include
10 #include11
using
namespace
std;
12 typedef long
long
ll;13
int sum[1000005
];14 mapmy;
15char str[1000005
];16
int ans[1000005
];17
int main(void)18
28else ans[i+1] = 1;29
}30 my[0] = 0;int maxx = 0
;31 sum[0] = 0;32
for(i = 1; i <= l; i++)
3339
else
4045
else maxx = max(i-my[sum[i]],maxx);46}
47}48 printf("
%d\n
",maxx);
49return0;
50 }
1393 0和1相等串
給定乙個0 1串,請找到乙個盡可能長的子串,其中包含的0與1的個數相等。收起乙個字串,只包含01,長度不超過1000000。一行乙個整數,最長的0與1的個數相等的子串的長度。10112我發現腦洞一定要大,越大越好,不然有些辦法你想不出來,如果0和1的個數相等,我們要做的事情就是找到最長的區間 i 1...
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.對於每乙個...