51Nod 1393 0和1相等串

2021-09-10 06:25:46 字數 729 閱讀 7565

題目

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

輸入

乙個字串,只包含01,長度不超過1000000。

輸出

一行乙個整數,最長的0與1的個數相等的子串的長度。

樣例輸入

1011
樣例輸出

2
分析

使用字首和,字首和pre[i].val表示01字串前i個字元中,1的數量-0的數量的值。因此問題就是求滿足1的數量-0的數量=0的最大區間,程式使用排序進行優化,具體看程式。

c++程式

#include#include#include#includeusing namespace std;

const int n=1000005;

struct node

sort(pre+1,pre+n+1);//排序

//求中間某個區間s[l...r]滿足要求,且長度更長

for(int i=1;i<=n;i++)//列舉子串的開始位置

cout<} return 0;

}

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.對於每乙個...

51nod 1393 0和1相等串

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