又是01串(動態規劃)

2021-08-20 01:58:47 字數 549 閱讀 9753

給定乙個0-1串s,長度為n,下標從0開始,求乙個位置k,滿足0<=k<=n, 並且子串s0..k−1中的0的個數與子串sk..n−1中1的個數相等。 注意:

(1) 如果k = 0, s0..k−1視為空串

(2) 如果k = n, sk..n−1視為空串

(3) 如果存在多個k值,輸出任何乙個都可以 

(4) 如果不存在這樣的k值,請輸出-1

就一行,包含乙個0-1串s,長度不超過1000000。

題目要求的k值

01
1
解題思路:

計算出字串中字元為1的個數d, 假設從k處斷開, 此時後面有x個1,那麼前面就有d-x個1,同時前面有x個0(因為0的個數與1的個數相同), k = d-x + x = d, 所以k的位置,就是1的個數(特別的k可以為0和n)。

**如下:

#include#includechar s[1001000];

int main()

01串 動態規劃

時間限制 1000 ms 記憶體限制 65535 kb難度 2 描述 acm的zyc在研究01串,他知道某一01串的長度,但他想知道不含有 11 子串的這種長度的01串共有多少個,他希望你能幫幫他。注 01串的長度為2時,有3種 00,01,10。輸入 第一行有乙個整數n 0 輸出輸出不含有 11 ...

01串 動態規劃初級

描述 acm的zyc在研究01串,他知道某一01串的長度,但他想知道不含有 11 子串的這種長度的01串共有多少個,他希望你能幫幫他。注 01串的長度為2時,有3種 00,01,10。輸入 第一行有乙個整數n 0 輸出輸出不含有 11 子串的這種長度的01串共有多少個,佔一行。樣例輸入 2 23 樣...

動態規劃 交錯01串

如果乙個01串任意兩個相鄰位置的字元都是不一樣的,我們就叫這個01串為交錯01串。例如 1 10101 0101010 都是交錯01串。小易現在有乙個01串s,小易想找出乙個最長的連續子串,並且這個子串是乙個交錯01串。小易需要你幫幫忙求出最長的這樣的子串的長度是多少。輸入描述 輸入包括字串s,s的...