您的位置:首页 > 其它

uva 674 - Coin Change

2014-03-05 14:50 162 查看
这题调试了好久啊。

不要一开始就想着动态规划,慢慢做就可以做出来了,要记着给d[i][1]赋值。

#include<iostream>
#include<string.h>
using namespace std;
long long d[6][8000];
int coin[6]={0,1,5,10,25,50};
long long dp( int a,int k){
if(d[a][k]>0)
return d[a][k];
d[a][k]=0;
for(int i=0;i<=k/coin[a];i++){
d[a][k]+=dp(a-1,k-i*coin[a]);
}
return d[a][k];
}
int main(){
int m;
memset(d,0,sizeof(d));
for(int i=0;i<8000;i++)
d[1][i]=1;
while(cin>>m){
if(m==0){
cout<<0<<endl;
continue;
}
cout<<dp(5,m)<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: