题目链接
解题方法:DP
题目分析
题目大意
共有n
棵树以及m
种颜料,每棵树有一个数字c[i]
如果c[i]==0
表示这棵树需要染色,否则表示他已经有颜色,不能染色。现在规定这些树的美丽度为连续的区间数量,如2, 1, 1, 1, 3, 2, 2, 3, 1, 3可以分为{2}, {1, 1, 1}, {3}, {2, 2}, {3}, {1}, {3},所以这些树的美丽度为7。现在希望能让这n
棵树的美丽度为k
,问最少需要花费的染料的数量
解析
写个检讨,不该手贱瞎判断的,Wrong answer on test 81
,删了个条件就过了。
这题明显是用DP来做,状态也很好想,首先先构造两维,第一维表示前n
棵树,第二维表示可以分为m
,也就是说美丽度为m
。当我们状态转移的时候,会发现第n
棵树的DP值会跟随第n-1
棵树的DP状态而变化,所以我们要再开一维去记录每次的最后一棵树的颜色。状态转移方程显而易见了,注意要分当前树有颜色和无颜色两种情况考虑。
这题wa也主要是wa在很多队友不明不白的wa在了B题然后开始讨论,自己心态一下也浮躁起来,想的不那么清楚,递推方程已经想出来了,但是边界条件没想清楚,其实DP方程已经可以解决所有不符合条件的情况了。做比赛看榜讨论害人害己啊!!想要足够强还有很长的路要走。
代码
1 |
|