背包
Self-Discipline
在校大学生
展开
-
第十四届华中科技大学程序设计竞赛决赛同步赛 F - Beautiful Land
传送门:点击打开链接 题意:背包问题。 分析:这一问题与最初的01背包问题相比,只是修改了限制条件的大小。以前求解这一问题的方法的复杂度是O(nW),对于这一问题的规模来讲就不够用了。在这个问题中,相比较重量(体积),价值的范围比较小,所以需要改变dp的对象,之前dp针对不同的重量限制计算最大的价值,这里dp针对不同的价值计算最小的重量。定义dp[i+1][j]:=前i个物品中挑选价值总和为j...原创 2018-05-07 20:17:23 · 134 阅读 · 0 评论 -
牛客练习赛22 - C 简单瞎搞题
题目:点击打开链接 题意: 一共有 n个数,第 i 个数是 xi xi 可以取 [li , ri] 中任意的一个值。 设 ,求 S 种类数。 分析:首先想到用背包做,但是时间复杂度太高,后面参考了题解发现用bieset+位运算+背包的思想。题目给出的数据范围不大,最多不超过一百万种情况,可以用二进制中的1代表能凑成的数的值,开n个一百万的bitset,内存大概十多兆,不会超内...原创 2018-07-15 09:37:23 · 532 阅读 · 0 评论 -
hdu5887
题目:n个物品,时间限制m,给出每个物品的价值和时间,求在m限制内,最多的价值。 思路:大容量背包问题,采用贪心+搜索+剪枝的方法,先对所有的物品按贡献(w/v)进行排序, 当搜到第u个点时,第u+1个在剩下的贡献是最大的. 如果剩下空间的全部放 u+1物品都无法大于当前的答案,则剪去。 代码: #include<bits/stdc++.h> using namespace s...原创 2019-05-16 20:44:28 · 210 阅读 · 0 评论