HDU1881毕业bg
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1881
思路:题目实质是01背包问题,不过加了几方面的限制
将bg当作物品,离开时间当作重量,快乐度当作价值,则与01背包不同的是物品放入的顺序是有先后顺序的
所以需要排序
最后的结果也不是求f[n][bg[n].t]
状态转移方程:
f[i][j]=max{ f[i-1][j-bg[i].l]+bg[i].h , f[i-1][j] | j>=bg[i].l,j<=bg[i].t }
结果求f[n][....]之中的最大值
代码如下:
亦可用盲目搜索方法,貌似数据有点弱,所以才通过