UVa 674.Coin Change
来源:互联网 发布:java rpc http 编辑:程序博客网 时间:2024/06/05 12:45
经典dp问题,用记忆化搜索或者用递推(滚动数组)均可实现。
用滚动数组如下:
#include <iostream>#include <cstdio>using namespace std;int n;int f[7490];int a[5]={1,5,10,25,50};int main(){ int i,j; for(i=0;i<7490;i++)f[i]=1; //只由1组成均只有1种 for(i=1;i<5;i++) for(j=a[i];j<7490;j++) f[j]+=f[j-a[i]]; while( scanf("%d",&n)==1) printf("%d\n",f[n]); return 0;}
用记忆化搜索如下:
#include <iostream>#include<cstdio>#include<string.h>using namespace std;#define maxn 7490const int coin[]={0,1,5,10,25,50};int n,d[maxn][6];int dp(int s,int k){ if(d[s][k]!=-1) return d[s][k]; d[s][k]=0;int i; for(i=k;i<=5&&s>=coin[i];i++) d[s][k]+=dp(s-coin[i],i); return d[s][k];}int main(){ memset(d,-1,sizeof(d));int i; for(i=0;i<=5;i++) d[0][i]=1; while(scanf("%ld",&n)==1) printf("%d\n",dp(n,1)); return 0;}
- UVa 674.Coin Change
- UVA 674 - Coin Change
- UVa 674 - Coin Change
- uva 674 Coin Change
- uva:674 - Coin Change
- Uva 674 Coin Change
- uva 674 Coin Change
- uva 674 - Coin Change
- UVa 674 - Coin Change
- Uva - 674 - Coin Change
- UVa 674 - Coin Change
- uva 674 Coin Change
- UVa 674 - Coin Change
- UVa 674 - Coin Change
- UVA-674-Coin Change
- UVA 674 coin change
- UVa 674: Coin Change
- UVA - 674 Coin Change
- Android操作HTTP实现与服务器通信
- OPENCV下针对IplImage实现图像增强处理
- Android 学习开始
- 通过ICE2下载pmon和kernel步骤
- android中导入低版本project
- UVa 674.Coin Change
- uboot传入的linux启动参数解析----命令行
- android的 launcher2 launcher 有什么不同
- PC/UVa 题号:110401/10041 Vito's Family
- 分钟数据按小时取平均值
- Apache OFBiz10.04 改用mysql数据库配置
- Ubuntu下删除VMware的方法
- 堆与栈的较量
- Google reset