------背包动规
QiufengWang424
这个作者很懒,什么都没留下…
展开
-
DP专题->01背包
首先01背包题目的雏形是有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。从这个题目中可以看出,01背包的特点就是:每种物品仅有一件,可以选择放或不放。其状态转移方程是:f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}对于这方方程其实并不难理解,方程之中,现原创 2016-08-19 14:44:20 · 740 阅读 · 0 评论 -
【HDU 1171】【背包DP 或者 母函数】Big Event in HDU【有n样物品,每样物品价值是v,件数是m。尽量把这些物品分成两堆使得两边总价值最接近】
传送门:http://acm.split.hdu.edu.cn/showproblem.php?pid=1171描述:Big Event in HDUTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 36806原创 2016-10-23 23:26:52 · 1316 阅读 · 0 评论 -
【hihoCoder太阁最新面经算法竞赛13 C】【01背包】Target Sum【给一个序列在序列中添加+或者-,使得运算结果为s,求方法数】
传送门:http://hihocoder.com/contest/hihointerview22/problem/3题意:给一个序列在序列中添加+或者-,使得运算结果为s,求方法数思路:强搜肯定不行,这题可以转换成01背包求解先求出序列的sum,多出的sum-s肯定有一半是要加上去的,还有一半是要减去的所以背包容量为(sum-s)/2,背包价值为方案数代码:原创 2016-11-09 20:35:01 · 707 阅读 · 0 评论 -
HDU 1712 ACboy needs your help (分组背包入门题)
题意:有n门课程,和m天时间,完成a[i][j]得到的价值为第i行j列的数字,求最大价值......思路:分组背包,就是第n门课程,可以做一天,可以做两天,但它们相斥,你做了一天,就不能再做一天...也就是不能再做这门课程了......(背包九讲的讲解)#includeusing namespace std;int dp[150],a[150][150];int main()原创 2016-08-21 17:49:26 · 309 阅读 · 0 评论