完全背包方案计数问题的FFT优化。首先写成生成函数的形式:对重量为V的背包,它的生成函数为$\sum\limits_{i=0}^{+\infty}x^{Vi}=\frac{1}{1-x^{V}}$于是答案就是$\prod \frac{1}{1-x^{V_k}}$。直接做显然会超时,考虑使用ln将乘法 ...
分类:
其他好文 时间:
2019-02-14 13:27:34
阅读次数:
153
Problem Description 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经 ...
分类:
其他好文 时间:
2019-02-13 21:08:41
阅读次数:
168
01背包 问题描述 有n个重量(费用)和价值分别为wi,vi的物品。从这些物品中挑选出总重量(费用)不超过W的物品,求所有挑选方案中价值总和的最大值。 例子 n=4 (w,v)={(2,3),(1,2),(3,4),(2,2)} W=5 输出:7 1 二维数组版:时间复杂度O(nW) ,空间复杂度O ...
分类:
其他好文 时间:
2019-02-10 00:20:13
阅读次数:
161
01背包退背包 首先dp出01背包数组dp[]。 完全背包退背包 首先dp出完全背包数组dp[]。 还有个比较经典的题 https://www.luogu.org/problemnew/show/P1450 容斥求多重背包方案数。 ...
分类:
其他好文 时间:
2019-02-07 09:25:45
阅读次数:
234
背包问题: ①. 0/1背包, 每个物品只有1个,即只能选或者不选, 用结构体存贮每个物品的重量和价值, 然后fori(遍历每个物品),再forj(1-i); ②. 完全背包.每个物品都有无限个,可以选择无限个, 用结构体存贮每个物品的重量和价值, 然后fori(遍历每个物品),再forj(i-1) ...
分类:
其他好文 时间:
2019-02-06 11:57:38
阅读次数:
194
hdu2546,01背包,需要有点变形,计算时需要把价格最大的菜先放一边,最后计算。 #include<iostream> #include<cstdio> #include<set> #include<map> #include<vector> #include<iterator> #includ ...
分类:
其他好文 时间:
2019-02-05 22:24:03
阅读次数:
214
自然数拆分,完全背包 1 #include <cstdio> 2 #define ll long long 3 #define mod 2147483648 4 #define rep(i, a, b) for (int i = a; i <= b; i++) 5 6 int n; 7 ll f[4 ...
分类:
其他好文 时间:
2019-02-03 15:30:07
阅读次数:
153
``` include include using namespace std; //完全背包 const int maxm=2001,maxn=101; int n,m,v,i; int c[maxn],w[maxn]; int f[maxm]; int main() { scanf("%d%d" ...
分类:
其他好文 时间:
2019-01-26 20:58:25
阅读次数:
188
HDU - 1028 step 1:初始化第一个多项式 也就是 由 1的各种方案 组 成 的多项式 初始化系数为 1。临时区 temp初始化 为 0 step 2:遍历后续的n - 1 个 多项式 ,第二重 for j 代 表 的 存 储 结 果 的 多 项 式的次数,k 代表 当前 第 i 的 多 ...
分类:
其他好文 时间:
2019-01-13 01:46:13
阅读次数:
158
解法 dp表示目前的种数,要全部装满所以f[0]=1其余为0的初始化是必不可少的 代码 ...
分类:
其他好文 时间:
2019-01-08 21:20:49
阅读次数:
157