PKU 1157 LITTLE SHOP OF FLOWERS

来源:互联网 发布:文字编辑排版软件 编辑:程序博客网 时间:2024/05/22 12:00

动态规划的题目,找到最合适的插花位置,首先这是一个分段决策问题,我一开始做的思路是,通过一个遍历插第i朵花的时候,在第j个花瓶中遍历的去找,只要超过v-(f-i-1)就行,但是现在想一想,我知道自己错在哪里了,我所想的思路是一个不可逆的过程,也许当前最优的选择不一定是最后最优的选择。

改正思路,对于dp[i][j]来说,状态转移方程应该是dp[i][j]=max(dp[i-1][k])+value[i][j];也就是在将第i只花插入第j只花瓶。前i-1只花是最大值max(dp[i-1][k])是对于i-1只花寻找其美观值最大的花瓶位置。当i等于最后一只花时,前面的花都已经安排好。通过遍历找到最后一只的最大值dp[i][j]最大那个就是答案!

代码如下:

 

原创粉丝点击