摘要: 题意是有k个物品, 每个物品b[i]个, 且每个物品重a[i], 求从这些物品中取出的物品总重为n的方案数, 典型的求解多重集组合数, 代码如下: #include <algorithm> #include <cstring> #include <iostream> using namespace 阅读全文
posted @ 2016-02-25 16:52 xing-xing 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 题意是给你n个物品, 每个物品有ai个, 从中选取m个物品的排列数是多少??这个问题可以使用指数型母函数来解决。。代码如下: #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> using nam 阅读全文
posted @ 2016-02-25 16:27 xing-xing 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 这个题的意思是给你1^2 2^2 3^2 ... 17^2这17个数, 为你组成i的方案数有多少个, 可以通过普通母函数来求解, 系数就代表方案数, (1+x+x^2+...x^300)(1+x^2+)..., 代码如下: #include <iostream> #include <algorith 阅读全文
posted @ 2016-02-25 14:45 xing-xing 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 题目大意是给定1 2 5的数量 a, b, c, 问1 2 5不能组成的最小的数是多少?可以使用dp来解决, 定义dp[i][j]为前i种组成j的时候第i中数剩余多少, 那么 dp[i][j] = mi (dp[i-1][j]>=0) -1 (a[i]>j || dp[i][j-a[i]]<=0) 阅读全文
posted @ 2016-02-25 13:57 xing-xing 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 题意是将一个整数N划分成不超过N个整数的和, 我们定义d[i][j]为j划分成不超过i个整数的和的方案数, 那么d[i][j] = d[i][j-i](全大于0) + d[i-1][j](不全大于0)。 答案就是d[N][N], 代码如下: #include <iostream> #include 阅读全文
posted @ 2016-02-25 01:06 xing-xing 阅读(191) 评论(0) 推荐(0) 编辑