母函数
lp_opai
我没有时间写一封简短的信,所以我写了一封长的。
展开
-
hdu 1028 Ignatius and the Princess III (母函数)
///整数拆分模版 ///g(x)=(1+x+x^2...)(1+x^2+x^4...)(1+x^3+x^6...) # include # include # include # include using namespace std; int main() { int n,i,j,k,c1[125],c2[125]; while(~scanf("%d",&n)) {原创 2014-10-03 10:02:35 · 743 阅读 · 0 评论 -
母函数详解
母函数(Generating function)详解 在数学中,某个序列的母函数是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。使用母函数解决问题的方法称为母函数方法。 母函数可分为很多种,包括普通母函数、指数母函数、L级数、贝尔级数和狄利克雷级数。对每个序列都可以写出以上每个类型的一个母函数。构造母函数的目的一般是为了解决某个特定的问题,因此选用何种母函数视乎序列本身转载 2014-10-02 19:21:54 · 608 阅读 · 0 评论 -
hdu 1398 Square Coins (母函数)
//输入是一个整数。输出他的拆分数(即拆分的方案数),本题与1028最大的不同之处就在于他的面额只能是整数的平方 # include # include # include # include using namespace std; int main() { int n,i,j,k; int c1[310],c2[310]; while(~scanf("%d",&n),n) { for(i=0;i<=n;i++) {原创 2014-10-03 10:28:13 · 742 阅读 · 0 评论 -
hdu 1085 Holding Bin-Laden Captive! (母函数)
//给你面值为1,2,5的三种硬币固定的数目,求不能凑出的最小钱数 //G(x)=(1+x+...+x^num1)(1+x^2+...+x^2num2)(1+x^5+,,,+x^5num3), //展开,系数不为0的数都是可以由硬币组合出来的。 # include # include # include # include using namespace std; int main() {原创 2014-10-03 20:32:54 · 707 阅读 · 0 评论 -
hdu 1709 The Balance (母函数)
/* 题目:给出一定(n)数量的砝码,每个砝码重a1,a2,a3。。。an, 问题:求出【1~sum】中(sum为各砝码总和)不能被称出的重量; 问题关键:天平两边都可以放砝码, 放在同一端:a[j+k]+=a[j]不同端a[abs(j-k)]+=a[j] 假设原来的砝码都放在右端,则可以把新加的砝码放在左端,得到新重量,此时a[abs(j-k)]+=a[j]。 */ # include # i原创 2014-10-03 22:15:34 · 674 阅读 · 0 评论 -
HDU 2152 Fruit (母函数)
# include # include # include # include using namespace std; int main() { int n,m,i,j,k; int c1[110],c2[110]; int a[110],b[110]; while(~scanf("%d%d",&n,&m)) { for(i=0;i<原创 2014-10-04 16:18:02 · 952 阅读 · 0 评论 -
poj 1221 UNIMODAL PALINDROMIC DECOMPOSITIONS (母函数)
/* 给出一个数n,把它拆分成若干个数的和,要求最大的数在中间并向两边非递增。问拆法有多少种。 母函数。枚举中间的那一个数,因为左右对称,所以只需要求左边部分的方案即可。 注意,左右两部分的取数必须小于中间的数,中间的数是0的话则以n为最大取值。 */ # include # include # include # include typedef long long LL; using原创 2014-10-04 21:44:48 · 1026 阅读 · 0 评论 -
poj1664 放苹果 (母函数)
/* 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法 */ # include # include # include using namespace std; int main() { int t,i,j,k,n,m; int c1[15],c2[15]; while(~scanf("%原创 2015-08-11 19:58:57 · 465 阅读 · 0 评论