
动态规划-背包
Toooooocold
这个作者很懒,什么都没留下…
展开
-
HDU 6125 Free from square
由于对于一个合法的答案,sqrt(500)后的素数最多只会用到一个,所以只对前8个素数状压后01背包。 dp(S, k)表示素数状态为S时由k个自然数组成的方法有几种。 再对后面的素数分别01背包。原创 2017-08-18 22:09:08 · 462 阅读 · 0 评论 -
UVALive 4945 Free Goodies
背包。 将物品按照petra的贪心思想排序 假设Jan先手,对于第i (1~n)个物品,他的背包大小为(i+1)/2,因为对于前i个物品,Jan最多拿走(i+1) /2个。 那么petra的值就是Jan拿剩下的。 代码: #include #define fi first #define se second #define pb push_back #define lson o<<1 #原创 2017-07-11 16:36:21 · 248 阅读 · 0 评论 -
UVALive 5063 Just Sum It
题意: 给你1~9这9个数字每个数字的最多选择个数,问他们所有不同的选择排列构造出的整数的整数和。 思路: 用背包和组合数可以很容易得到任意情况的方案数,剩下的是考虑怎么求出每个数字对于答案的贡献。 假设数字aa有xx个,求出含有a≤x−1a\le x-1的所有方案数,再将最后一个aa插入。对于每一种方案有长度ll,枚举l+1l+1种插法,就可以得到aa出现过的所有位置了。原创 2017-08-27 14:55:12 · 194 阅读 · 0 评论