ACM 背包
yerongsc
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
poj 2392 Space Elevator
题意:一共有n种材料,每种材料有数量和高度,且每种材料不能建在高度ai以上,求能够构建的最大高度。 将材料的cost和weight都当做高度,每种材料的ai为其weight上限,即任意高度下,该材料不能超过高度ai 将材料按上限ai进行排序后,装换为多重背包问题,每次多重后,将状态值f[i]大于ai的修改为不超过ai的最大值即可。 #include #include原创 2013-06-14 10:52:23 · 420 阅读 · 0 评论 -
poj 2184 Cow Exhibition
题目大意:有N头牛,每一头牛有s和f两个属性,要求s的和与f的和都不小于0的情况下,s和f和的最大值 将牛的s属性看做cost,将牛的f属性看做weight,因为s可能为负,用f[100000+s]来表示f[s] 当cost为正时,与01背包相同 当cost为负时,正向更新,用后面为改变的值来更新前面的值,比如cost为-5,需要用f[s-(-5)]来更新f[s],需要f[s+5]的原创 2013-06-13 21:45:40 · 529 阅读 · 0 评论 -
hdu 3033 I love sneakers!
分组背包问题的变形,将至多从背包选取一个改为至少从背包选取一个,修改第二重和第三重循环的顺序即可 /*分组背包,且每个背包至少选择一个,交换2,3层循环次序*/ #include #include #include using namespace std; int f[105][10005]; int brand[105]; int c[105]; int原创 2013-06-14 18:45:29 · 460 阅读 · 0 评论 -
poj 1837 Balance
题意:有c个挂钩,g个砝码,要求用完所以砝码,且天平平衡的方法数 状态方程:f[i][j]表示用完前i个砝码平衡度为j时的方法数,f[i-1][j]表示用完前i-1个砝码,平衡度为j的方法数,此时加上第i个砝码,平衡度变为j+c[k]*w[i],即f[i][j+c[k]*w[i]] = f[i-1][j] 由于有负数,下标平移7500(15*20*25)个单位 #inclu原创 2013-06-15 09:26:12 · 548 阅读 · 0 评论
分享