
背包
ylsoi
这个作者很懒,什么都没留下…
展开
-
[poj1742]Coins——多重背包优化DP
题目大意: 给定n个物品,第i个物品价值为a[i],数量为c[i],求可以组成的小于m的价值的个数。 思路: 好像n,m的范围比较大,暴力跑二进制优化的多重背包是可以卡过去的。但是有一种O(nm)O(nm)O(nm)的方法来优化多重背包,即在枚举体积的时候我们按照完全背包来顺序枚举,完全背包里的枚举体积是可以满足重复选择同意物品的,但是由于每一种物品有自己的数量,所以我们对于每一种体积都记录...原创 2018-05-05 11:37:35 · 270 阅读 · 0 评论 -
[codevs5429]多重背包——单调队列优化多重背包
题目大意: 你有一个容量为M的背包,和N种物品。 每种物品都有三个属性,vi,wi,与ci,分别表示这种物品的体积、价值和件数。 你的任务是,从这些所给物品中,选出若干件,其体积之和不能超过背包容量,并且使所选物品的权值的和最大。 思路: 朴素的方法当然是先枚举物品再枚举体积最后再枚举个数,但是这样的时间复杂度太高,接受不了,所以可以考虑用单调队列优化DP。发现单调队列维护的区间一定...原创 2018-05-08 13:09:09 · 558 阅读 · 0 评论 -
[jzoj4916]完全背包问题——DP
题目大意: 有n种物品,物品的体积分别为V1, V2, · · · , Vn,且每种物品的数量都可以看做是无 限多的。 现在有m次询问,每次询问给定一个容量为Wi的背包,请你回答是否存在一种物品选择方案,使得背包恰好能被完全装满(仅考虑体积,忽略长、 宽、 高等其他因 素)。 同时,要求所有选出的物品中,体积不小于L的物品总数量不能超过C件。 思路: 好像体积大于L的部分可以直接暴力DP而不...原创 2018-06-14 19:51:30 · 625 阅读 · 0 评论 -
[ARC99E]Independence——二分图染色+DP
题目大意: 给定一个图,要求你把它分为两个团,求最小的端点都在一个团中的边的个数。 思路: 搞成补图之后二分图染色,去除不合法的情况,然后对于每一个联通块中的黑点的个数看成一个物品,白点的个数看成一个物品,每一个联通块只可以选择一种物品,然后跑背包取尽量中间的体积。 然后就错了,这题不是背包,而是一个略区别于背包的DP,每一个泛化物品必须要选定一个,而不能不选。 /*========...原创 2018-06-25 20:50:22 · 227 阅读 · 0 评论 -
[loj6089]小 Y 的背包计数问题——背包计数+优化
题目大意: 小 Y 有一个大小为nnn的背包,并且小Y有nnn种物品。 对于第iii种物品,共有iii个可以使用,并且对于每一个iii物品,体积均为iii。 求小Y把该背包装满的方案数为多少,答案对于233333332333333323333333取模。 定义两种不同的方案为:当且仅当至少存在一种物品的使用数量不同。 思路: 因为对于...原创 2018-08-06 14:03:37 · 1138 阅读 · 0 评论 -
[bzoj5302][Haoi2018]奇怪的背包——数论+背包
题目大意: 题面 思路: 首先你发现一个集合里面的物品可以组合成的总体积必定是gcd(vi,p),i∈Sgcd(vi,p),i∈Sgcd(v_i,p),i\in S,于是为了防止重复计算,一个方案用它的gcd来表示。 于是对于每一个物品,可以直接使得vi=gcd(vi,p)vi=gcd(vi,p)v_i=gcd(v_i,p),然后我们将p的所有的约数提取出来,做一个dp,dp[i][j]表...原创 2018-08-27 21:13:47 · 290 阅读 · 0 评论