抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

题面 传送门:洛谷 Solution 这是一道很有意思的在背包里面做容斥的题目。 首先,我们可以很轻松地想到暴力做背包的做法。 就是对于每一次询问,我们都做一次背包。 复杂度$O(tot_s_log(di))$ (使用二进制背包优化) 显然会T得起飞。 接下来,我们可以换一种角度来思考这个问题。 首先,我们可以假设没有每个物品的数量的限制,那么这样就会变成一个很简单的完全背包问题。 至于完...

题面 传送门:https://www.luogu.org/problemnew/show/P1005 Solution 我们可以先考虑贪心 我们每一次都选左右两边尽可能小的数,方便大的放在后面 听起来挺OK的 实则并不OK 反例: 3 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 如果贪心的话,我们会优先把右边那一串2先选了,再去选3和1 但是正确答案显然是先把3和1选了,再...

标签(空格分隔): 题面: 传送门:BZOJ Solution 看到这道题,我们不妨先考虑一下20分怎么搞 想到暴力,本蒟蒻第一反应就是dfs,想法也很简单: 枚举n个数中的每一个数,枚举完每一种情况都判断一下是否满足要求 复杂度$O(n^m)$ 显然,这样的复杂度一分都得不到,但是可以作为对拍用的暴力程序 既然dfs行不通了,那我们换个想法吧,考虑一下用dp来搞这个问题 设$f[i][...

题面: 传送门:POJ Solution DP+DP 首先,我们可以很轻松地求出所有物品都要的情况下的选择方案数,一个简单的满背包DP就好 即:$f[i][j]$表示前i个物品装满容量为j的背包的方案数. 转移也很简单 $f[i][j]=f[i-1][j]+f[i-1][j-w[i]] (i:1~n,j:1~m)$ (即选和不选的问题) 初始化 $f[i][0]=1 (i:[0~n])$ ...