母函数的三个应用+总结
//母函数的应用 ac两道基本+想通两种变式 
//不写完,不睡觉
//0:27写完啦 1A 写个小小总结
//1.element0~n-1 任意个:直接套模板
//2.element是特定元素的集合 个数任意:定义一个数组并初始化。元素无规律,下标有规律
//3.element特定 个数有限制:用结构体数组存特定元素和个数 注意细节 
//给出另一个排列组合问题的背景:
//盒子里取球,n种不同颜色,各有ai个。求一次取m个的可能结果数 
//只需求出x^m 即为答案(p.s.相同颜色的认为都相同,否则x^i带有系数) 
#include<cstdio>
using namespace std;
const int N = 8000;
int c1[N+10],c2[N+10];
struct ele{
	int v,num;
}a[5];
int n,m,p;
int main(){
	a[1].v=1,a[2].v=2,a[3].v=5;
	while(scanf("%d%d%d",&n,&m,&p)==3&&!(m==0&&n==0&&p==0)){
		a[1].num=n,a[2].num=m,a[3].num=p;
		for(int i=0;i<=N;i++){
			c1[i]=0,c2[i]=0;   //init()
		}
		for(int i=0;i<=n;i++){
			c1[i]=1;  //一元coin限制为n个 
		}
		for(int i=2;i<=3;i++){  //三种coin 下标 
			for(int j=0;j<=N;j++){
				for(int k=0;k<=a[i].v*a[i].num;k+=a[i].v){//第i种coin用完了  c2括号结束
					c2[j+k]+=c1[j];
				}
			}
			for(int k=0;k<=N;k++){
				c1[k]=c2[k],c2[k]=0;
			}
		}
		for(int i=0;i<=N+1;i++){
			if(c1[i]==0){
				printf("%d\n",i);
				break;
			}
		}
	}
	return 0;
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号