你的朋友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...