摘要: 题意:已知有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 阅读全文
posted @ 2011-11-02 22:30 枕边梦 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 嘿嘿,又一道母函数不过这个没办法直接用之前大致的模板,因为之前的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 阅读全文
posted @ 2011-11-02 21:59 枕边梦 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 嘿嘿还是一样的题目#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++) 阅读全文
posted @ 2011-11-02 20:32 枕边梦 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 哈,第二道母函数的题目,哎,不过那是因为函数比较明显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( 阅读全文
posted @ 2011-11-02 19:39 枕边梦 阅读(164) 评论(0) 推荐(0) 编辑