题目链接:
【小结】:
这个题,和我想的不太一样,我真的受到昨天的一个题影响了,一直没有想法,后来大家都说是dp,我才反应回来,不难想到就是dp,但是怎么写这个状态方程呢???这就让我很迷糊了。。。做题做得太少了,所以才写不出来。
【题意】:
这个题目挺有意思的,就是农夫John,然后他有n头牛,然后每一头牛都有各自的打包装的本领,然后农夫John分组(最多为k头牛一组)后可以让组内的所有牛 都获得组内牛中最高能力值,给你n,k,给出n个数,然后可以宁最多为k个连续的数为 该区域内的最大值,然后问,进行这个操作后怎么使得总和最大。
【题解】:
不难想到:dp[ N ],数组内,dp[i],表示以第i个为前缀的最大值,一直维护。是前缀而不是其他,因为如果是单个的最优不能保证全局的最优。 关键是: 然后怎么写出状态方程呢????
首先我们拿到的信息只有k,和k中区间内最大的。
苦死冥想之后,还是做不出来,最后赛后去看洛谷才发现简单的dp。
第一层for枚举1~n,第二层for枚举(写法有两种):
第一种可以是枚举后面的数 Max ( a[ j ] ) ,,使得在该位上变成 (j-i+