zzuli 1895 (985的0 1串難題)

2021-07-16 09:14:48 字數 943 閱讀 3823

985的0-1串難題

985有乙個長度為n的0-1串,已知他最多可以修改k次(每次修改乙個字元即0->1 或者 1->0),他想知道連續的全1子串最長是多少。

第一行輸入乙個整數t,代表有t組測試資料。

每組資料第一行輸入兩個整數n,k分別代筆上面的資訊。

注:1 <= t <= 12,1 <= n <= 100000,0 <= k <= 100000。

乙個整數代表可以得到的最大長度。

2

6 3010100

6 2010100

5

4

題解:就是求k個0之間的最大串長度。

思路:用cnt[ ]記錄0的個數和位置,cnt首尾加上0,cnt[0]=0,cnt[ ]=n+1.判斷時先比較k與0總數的大小。

#include#include#includeusing namespace std;

int main(){

int t,n,k,i;

char s[101010];

int cnt[101010];

scanf ("%d",&t);

while (t--){

scanf ("%d %d",&n,&k);

/* getchar();

gets(s);gets()不能隨便用,re,因為gets()可以無限讀取,不會判斷上限,需要足夠大的buffer

*/ scanf ("%s",s);

int pos=0;

cnt[pos++]=0;//首位加0

for (i=0;i=(pos-2))

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

else{

int num=0;

for (i=k+1;i

zzuli 1895 985的0 1串難題

985有乙個長度為n的0 1串,已知他最多可以修改k次 每次修改乙個字元即0 1 或者 1 0 他想知道連續的全1子串最長是多少。第一行輸入乙個整數t,代表有t組測試資料。每組資料第一行輸入兩個整數n,k分別代筆上面的資訊。注 1 t 12,1 n 100000,0 k 100000。乙個整數代表可...

1895 985的0 1串難題

time limit 1 sec memory limit 128 mb submit 152 solved 36 submit status web board 985有乙個長度為n的0 1串,已知他最多可以修改k次 每次修改乙個字元即0 1 或者 1 0 他想知道連續的全1子串最長是多少。第一行...

zzuli 1198 985的數字難題

985的數字難題 985有n個數,已知每次操作可以將其中不相同的兩個數乙個加 一 乙個減一,操作次數不限。問他最多可以得到多少個相同的數。第一行輸入乙個整數t,代表有t組測試資料。每組資料佔兩行,第一行輸入乙個n代表元素個數,下面一行輸入n個整數a。注 1 t 30,1 n 1e4,1 a 1e3。...