Link~
Problem
Sample 1-输入
7 3
1
15
7
9
2
5
10
Sample 1-输出
84
思路
(这题好像没有蓝题难度…(思索.jpg)敲个特别暴力的dp就过了。
DP,设f[j]为到分完第j个奶牛所能获取的最大值;然后又枚举i,从i到j分为一组;主要代码如下:
for(int i = 1; i <= n; ++i){ //分组起始位置
s = sp[i]; //s用于统计这段奶牛水平中的最大值
for(int j = i; j <= min(n,i+k-1); ++j){ //分组结束位置
s = max(s,sp[j]);
f[j] = max(f[j],f[i-1]+s*(j-i+1)); //计算结果
}
}
代码
?上面思路写得不清楚吗。(doge