hdu1085母函数模板

来源:互联网 发布:excel2007数据透视表 编辑:程序博客网 时间:2024/05/17 23:46
#include<iostream>#include<stdio.h>#include<string.h>using namespace std;const int maxn=8000;int c1[maxn+10],c2[maxn+10],last,last2;int main(){    int money[4]={0,1,2,5},num[4],x;    while(scanf("%d%d%d",&num[1],&num[2],&num[3])!=EOF){        if(!(num[1]||num[2]||num[3])) break;        memset(c1,0,sizeof(c1));        memset(c2,0,sizeof(c2));        c1[0]=1; last=0;        for(int i=1;i<=3;i++){            last2=min(maxn,last+num[i]*money[i]);            for(int j=0;j<=last;j++){                x=num[i]*money[i];                for(int k=0;k<=x&&j+k<=last2;k+=money[i]){                    c2[j+k]+=c1[j];                }            }            memcpy(c1,c2,sizeof(int)*(last2+1));            memset(c2,0,sizeof(int)*(last2+1));            last=last2;        }        for(int i=1;;i++)            if(c1[i]==0){                printf("%d\n",i);                break;            }    }}