摘要:
题目链接:https://vjudge.net/problem/HDU-1074 状压dp。将作业从0-n-1存储。对于二进制m位为1表示做了第m门作业(右一位定义为第0位)。可以写出转移方程:f[i]=min(f[st]+max(time-a[j].d,0)),此处st表示如果状态i的j位为1也就 阅读全文
posted @ 2020-04-27 00:47
coastal_taipan
阅读(139)
评论(0)
推荐(0)
摘要:
题目链接:https://vjudge.net/problem/POJ-2184 01背包问题的变形。将S当做重量,F当做价值。但注意此时S可能有负数且-1000<=Si<=1000,且N<=100。所以可以考虑将整个数组向右平移100000个单位,这样可以避免数组下标为负数的情况 设c=10000 阅读全文
posted @ 2020-04-27 00:17
coastal_taipan
阅读(187)
评论(0)
推荐(0)
摘要:
题目链接:https://vjudge.net/problem/POJ-3280 区间dp。设dp[i][j]表示从原串c的位置i到位置j,变成回文所需要的最小代价。 有如下情况: 1) c[i]=c[j],则dp[i][j]=dp[i+1][j-1] 2) c[i]≠c[j],对于左边的c[i], 阅读全文
posted @ 2020-04-27 00:04
coastal_taipan
阅读(151)
评论(0)
推荐(0)
摘要:
题目链接:https://vjudge.net/problem/POJ-2392 贪心的想,先堆限高低的木块,再堆限高更高的木块的方案是更优的,因为反之有可能限高低的木块无法堆.于是将木块按限高排序,然后做多重背包。有两个小优化: 1)如果当前的dp[j]=1,说明当前高度j已经可以由之前的木块堆出 阅读全文
posted @ 2020-04-27 00:01
coastal_taipan
阅读(128)
评论(0)
推荐(0)

浙公网安备 33010602011771号