HDOJ1085

来源:互联网 发布:魔术手淘宝产品复制 编辑:程序博客网 时间:2024/06/18 00:32

http://acm.hdu.edu.cn/showproblem.php?pid=1085

简单的母函数运用,不多说,直接上代码

#include <iostream>#include <cmath>#include <stdio.h>using namespace std;const int maxn=8e3+10;int a[5],b[5],total;int main(){    b[1]=1;b[2]=2;b[3]=5;    while (cin>>a[1]>>a[2]>>a[3]){        if (a[3]==0 && a[1]==0 && a[2]==0) break;        int c1[maxn]={0},c2[maxn]={0};        for (int i=0;i<=a[1];i++) c1[i]=1;        total=a[1]+a[2]*2+a[3]*5+1;        for (int i=2;i<=3;i++){            for (int j=0;j<=total;j++){                    int used=0; //钱币使用数不能超过数据所给的值                for (int k=0;k+j<=total&&used<=a[i];k+=b[i],used++)                    c2[j+k]+=c1[j];            }            for (int j=0;j<=total;j++){                c1[j]=c2[j];                c2[j]=0;            }        }        int tmp=a[1]+1;        while (c1[tmp]) tmp++;        cout<<tmp<<endl;    }    return 0;}
原创粉丝点击