尺取法(Mishka記最大定理數)

2022-08-31 15:48:18 字數 1050 閱讀 5076

你的朋友mishka和你參加乙個微積分講座。講座持續n分鐘。講師在第i分鐘講述ai個定理。

公尺什卡真的對微積分很感興趣,儘管在演講的所有時間都很難保持清醒。給你乙個公尺什卡行為的陣列t。如果mishka在演講的第一分鐘睡著了,那麼ti將等於0,否則它將等於1.當公尺什卡醒來時,他寫下講師所講述的所有定理 。否則,他什麼都不寫。

你知道一些方式讓mishka直線醒過來持續k分鐘。但是,您只能使用一次。你可以在1和n - k + 1之間的任何一分鐘開始使用它。如果你在一分鐘內使用它,那麼mishka會在幾分鐘內醒來,並且會寫下講師所講的所有定理。

你的任務是計算mishka能夠記下的最大定理數,如果你只用一次技巧來喚醒他。

input

輸入的第一行包含兩個整數n和k(1≤k≤n≤105) - 以分鐘為單位的講座持續時間以及可讓mishka保持清醒狀態的分鐘數。

輸入的第二行包含n個整數a1,a2,... an(1≤ai≤104) - 講師在第i分鐘講述的定理數。

輸入的第三行包含n個整數t1,t2,... tn(0≤ti≤1) - 講座第i分鐘mishka行為的型別。

output

只列印乙個整數 - 只用一次技巧來喚醒mishka,他可以記下的定理的最大數量。

sample input

input

6 3

1 3 5 2 5 4

1 1 0 1 0 0

output

16
sample output

hint

在示例情況下,最好的方法是在第三分鐘開始時使用。 那麼mishka將能記下的定理數將等於16。

#includeint a[100101],t[101001],g[100001]=;

int main()

for(i=1;i<=n-k+1;i++)

if(g[i]>max1)

max1=g[i];

printf("%d\n",sum+max1);

return 0;

}

演算法 尺取法

我們先來介紹一下尺取法。尺取法,顧名思義,像尺子一樣,一塊一塊的擷取。題目翻譯 給定長度為n的數列整數a0,a1,a2,a3 an 1以及整數s。求出綜合不小於s的連續子串行的長度的最小值。如果解不存在,則輸出0。限制條件 100s 10 8 這裡我們拿第一組測試資料舉例子,即 n 10,s 15,...

尺取法練習

mr wolfram 的csdn 部落格 hopeforbetter的csdn部落格,尺取法顧名思義就像尺子一樣,當測量乙個物體時,你不一定從開始的位置測量,你可以從任意乙個位置st開始,當然前提是尺子夠長,然後你再讀出尾部en的數,尾部減去開始的位置en st,就是這個物體的長度。尺取法就是這個思...

尺取法基礎

p1638 逛畫展 題意 求最短區間包含所有畫家。思路 利用兩個變數來維護區間,如果區間不滿足條件r 滿足的話,l 直到區間最小。includeusing namespace std int a 1000005 b 1000005 int main b a l if b a l 0 k l else...