acwing 652. 切蛋糕

題目地址ios

今天是小Z的生日,同窗們爲他帶來了一塊蛋糕。ide

這塊蛋糕是一個長方體,被用不一樣色彩分紅了N個相同的小塊,每小塊都有對應的幸運值。spa

小Z做爲壽星,天然但願吃到的第一塊蛋糕的幸運值總和最大,但小Z最多又只能吃M小塊(M≤N)的蛋糕。code

吃東西天然就不想思考了,因而小Z把這個任務扔給了學OI的你,請你幫他從這N小塊中找出連續的k塊蛋糕(k≤M),使得其上的幸運值最大。xml

輸入格式

第一行包含兩個整數N和M,表示共有N小塊蛋糕,小Z最多隻能吃M小塊。blog

第二行包含空格隔開的N個整數,第i個整數PiPi表明第 i 小塊蛋糕的幸運值。ci

輸出格式

輸出包含一個整數,爲小Z可以獲得的最大幸運值。get

數據範圍

1N5000001≤N≤500000,
500Pi500
io

輸入樣例:

5 2
1 2 3 4 5

輸出樣例:



9

 

滑動窗口 前綴和 而後仍是 TLE的版本event

 1 #include <iostream>
 2 
 3 
 4 using namespace std;
 5 
 6 const int N = 5e5+10;
 7 
 8 int luck[N];
 9 int preSum[N];
10 
11 
12 
13 int m ,n;
14 
15 int ans =0;
16 
17 int main()
18 {
19     cin >>n>> m;  
20     
21     for (int i = 1; i <= n; i++) {
22         cin >> luck[i]  ;
23         preSum[i] = preSum[i - 1] + luck[i];
24     }
25 
26     for (int l = 0; l <= n; l++)
27     {
28         for (int j = l +1; j <= n; j++) {
29             if (j - l > m)
30                 break;
31             int sum = preSum[j] - preSum[l];
32             if (sum > ans) {
33                 ans = sum;
34             }
35         }
36     }
37 
38     cout << ans << endl;
39 
40     
41     
42     return 0; 
43 }
tle

 

附上限時內經過的代碼地址 https://www.acwing.com/blog/content/150/

相關文章
相關標籤/搜索