Problem D 985的0 1串難題

2021-07-16 12:14:04 字數 2202 閱讀 2895

time limit: 1 sec  

memory limit: 128 mb

submit: 260  

solved: 75

submit

status

web board

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

宇神:

解法一:發現最後的結果是線性的,我們二分答案,把問題變成判定性問題。

對於當前的二分值mid,判斷它的合法性即:是否存在乙個mid的連續段使得該段的0字元總數 <= k。

時間複雜度:o(t * n * log(n))。

解法二:考慮dp,dp[i]表示以第i個字元開始的最優連續段。

那麼我們只要找到最大的j(i <= j <= n)使得[i, j]裡面0字元總數 <= k即可。

可以先統計0字元的字首和,然後每次二分即可。最後結果就是max(dp[i]) (1 <= i <= n)。

時間複雜度:o(t * n * log(n))。

菜雞:記錄0~i之間有多少0儲存才cnt[i]中

則區間[n,m]中有a[m]-a[n-1]個0

長度(含有字元數)為n-m+1

所以比較k與a[m]-a[n-1]從而進行區間更新

並記錄出現過的最大長度即為結果

[cpp]view plain

copy

print

?#include

#include

using

namespace

std;   

char

s[100200];   

intcnt[100200];   

intmain()    

if(cnt[n-1]<=k)   

printf("%d\n"

,n);   

else

printf("%d\n"

,res);   

}   

}   

return

0;   

}   

宇神:

解法一:發現最後的結果是線性的,我們二分答案,把問題變成判定性問題。

對於當前的二分值mid,判斷它的合法性即:是否存在乙個mid的連續段使得該段的0字元總數 <= k。

時間複雜度:o(t * n * log(n))。

解法二:考慮dp,dp[i]表示以第i個字元開始的最優連續段。

那麼我們只要找到最大的j(i <= j <= n)使得[i, j]裡面0字元總數 <= k即可。

可以先統計0字元的字首和,然後每次二分即可。最後結果就是max(dp[i]) (1 <= i <= n)。

時間複雜度:o(t * n * log(n))。

菜雞:記錄0~i之間有多少0儲存才cnt[i]中

則區間[n,m]中有a[m]-a[n-1]個0

長度(含有字元數)為n-m+1

所以比較k與a[m]-a[n-1]從而進行區間更新

並記錄出現過的最大長度即為結果

[cpp]view plain

copy

print

?#include

#include

using

namespace

std;   

char

s[100200];   

intcnt[100200];   

intmain()    

if(cnt[n-1]<=k)   

printf("%d\n"

,n);   

else

printf("%d\n"

,res);   

}   

}   

return

0;   

}   

985的0 1串難題

985的0 1串難題 time limit 1 sec memory limit 128 mb submit 122 solved 23 submit status web board985有乙個長度為n的0 1串,已知他最多可以修改k次 每次修改乙個字元即0 1 或者 1 0 他想知道連續的全1子...

Problem D 順序串的基本運算

time limit 1 sec memory limit 128 mb submit 73 solved 28 submit status web board 編寫乙個程式,實現順序串的各種基本運算,主函式已給出,請補充每一種方法。1 建立串s abcdefghefghijklmn 和串s1 xy...

Problem D 字串的逆序

problem d 字串的逆序 time limit 1 sec memory limit 2 mb submit 8658 solved 5155 submit status web board description 將輸入的乙個字串s逆序輸出。input 輸入為乙個串s。輸入最少為乙個字元,最...