随笔分类 - 母函数
摘要:嘿嘿,还是比较基本的母函数/* ID: nanke691 LANG: C++ TASK: money */ #include<iostream>#include<string>#include<fstream>#include<string.h>#include<algorithm>using namespace std;const int maxn = 10000;int p[30],V,n;long long num1[maxn+1],num[maxn+1];void sovle(){ memset(num,0,sizeof(nu
阅读全文
摘要:题意:已知有N个不同的砝码,求这N个不同砝码不能称量的重量分析:与一般的母函数类似,只是还要多考虑一步,就是砝码并不定都放一边for(int i=1;i<=n;i++){for(int j=0;j<=maxn;j++){if(j+p[i]<=maxn)num1[j+p[i]]+=num[j];num1[abs(j-p[i])]+=num[j];//核心部分都加了这么一句}for(int j=0;j<=maxn;j++)num[j]=num1[j];}#include<iostream>#include<string.h>#include<a
阅读全文
摘要:嘿嘿,又一道母函数不过这个没办法直接用之前大致的模板,因为之前的G(x)=(1+x+x^2)*(1+x^2+x^4)……每一个括号都有一个1,所以我没有将数组num1[]重新置为0,而现在G(x)=(x^a1+x^(a1+1)+……+x^b1)*(x^a2+x^(a2+1)+……+x^b2)……#include<iostream>#include<string>#include<algorithm>using namespace std;int maxn,n,m;struct neg{ int a,b;}c[110];int num1[110],num[11
阅读全文
摘要:嘿嘿还是一样的题目#include<iostream>#include<string>#include<algorithm>using namespace std;int p[4]={0,1,2,5};int c[4],maxn;int num1[10000],num[10000];void sovle(){ memset(num,0,sizeof(num)); memset(num1,0,sizeof(num1)); for(int i=0;i<=c[1];i++) num1[i]=num[i]=1; for(int i=2;i<4;i++)
阅读全文
摘要:哈,第二道母函数的题目,哎,不过那是因为函数比较明显G(x)=(1+x+x^2+x^3……+x^300)*(1+x^4+x^8+……)*……(1+x^289)直接模拟咯#include<iostream>#include<algorithm>#include<string>#define maxn 310using namespace std;int p[18]={0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289};int num[maxn+1],num1[maxn+1];void init(
阅读全文
摘要:哈,我的第一道母函数题目。题意:一个由1~N 组成的集合,问将这个集合分成俩个子集,使得俩个子集的和相等的方法数。、分析:分成俩个子集,子集的和相等,很明显,子集的和已经知道了。换种说法,就是求用1~N 这个数组合出和为(1+N)*N/4 方法数的一半。这就用到 母函数的思想,求出函数(1+x)*(1+x^2)*(1+x^3)……(1+x^N)的展开式中,指数为 (1+N)*N/4 的项的系数。/*ID: nanke691LANG: C++TASK: subset*/#include<iostream>#include<fstream>#include<strin
阅读全文

浙公网安备 33010602011771号