hdu 2069 Coin Change

来源:互联网 发布:做头像的软件 编辑:程序博客网 时间:2024/05/16 00:25
#include<stdio.h>#include<string.h>int main(){    int c1[300][110],c2[300][110];//前一个括号是指系数 后一个指硬币个数    int num[5]={1,5,10,25,50};    int n,i,j,k,t,s;    while(~scanf("%d",&n)){        memset(c1,0,sizeof(c1));        memset(c2,0,sizeof(c2));        for(i=0;i<=100;i++){            c1[i][i]=1;        }        for(i=1;i<5;i++){            for(j=0;j<=n;j++){                for(t=k=0;k+j<=n;k+=num[i])                for(t=0;t+k/num[i]<=100;t++)                c2[j+k][t+k/num[i]]+=c1[j][t];            }            for(j=0;j<=n;j++)            for(t=0;t<=100;t++){                c1[j][t]=c2[j][t];                c2[j][t]=0;            }        }        for(s=i=0;i<=100;i++)        s+=c1[n][i];        printf("%d\n",s);    }    return 0;}

0 0