多重背包问题的优化版来做,详见之前的动态规划读书笔记。dp[i][j]表示前i中数加得到j时第i种数最多剩余几个(不能加和得到i的情况下为-1)递推式为:dp[i][j]=mi(dp[i-1][j]≥0,即前i-1种数就能达到数字j) =-1(j#include#includeusing nam.....
分类:
其他好文 时间:
2015-06-28 18:48:54
阅读次数:
139
题目大意:有1~6六种宝石,价格分别为1~6 。。给定每种宝石的个数,问能否平分给两个人分析:一看显然是个多重背包问题,也可以用母函数做不过母函数的复杂度是n*v*k,第一次tle了。。后来发现一种优化方式当个数大于 6的时候直接把个数设为 5(奇数),6(偶数)。。discuss 里面有位神牛给出...
分类:
其他好文 时间:
2014-11-11 18:26:30
阅读次数:
168
多重背包裸题POJ1014二进制优化(算是讲解吧)...
分类:
其他好文 时间:
2014-09-22 11:47:12
阅读次数:
120
题目大意:每行给出6个数,第 i 个数代表价值为 i 的石头的个数,问这么多个石头两个人能不能平均分。
就是一道简单的母函数,首先可先把石头的总价值sum算出来,如果sum是奇数,那么就不能平均分,如果是偶数,利用母函数的知识,只需判断指数为 sum/2 的系数是否为零,如果为0,说明没有一种方案可以平均分;如果不为0,则可以。
需要说明的是,由于每种价值的石头的个数可能很大,这有一个定理:对于任何一种石头的个数n,如果n大于等于8,则可将n改写成11(n为奇数)或12(n为偶数)。 否则会超时。...
分类:
其他好文 时间:
2014-09-11 19:31:22
阅读次数:
197
A - Dividing
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d
& %I64u
Submit Status
Description
Marsha and Bill own a collection of marbles. They want to split t...
分类:
其他好文 时间:
2014-08-28 09:44:39
阅读次数:
339
http://poj.org/problem?id=1014DescriptionMarsha and Bill own a collection of marbles. They want to split the collection among themselves so that both ...
分类:
其他好文 时间:
2014-08-27 21:46:18
阅读次数:
276
1 //Accepted 624 KB 16 ms 2 //dp 背包 多重背包 3 #include 4 #include 5 #include 6 using namespace std; 7 const int imax_n = 120005; 8 int f[imax_n...
分类:
其他好文 时间:
2014-08-13 22:21:37
阅读次数:
262