uva 674Coin Change
来源:互联网 发布:软件创新设计方案 编辑:程序博客网 时间:2024/04/30 18:25
严格意义上讲不是动态规划,是递推题目
#include <stdio.h>long long dp[7490][6];int main(void){int i, j;long long sum;dp[0][0] = 1; dp[0][1] = dp[0][2] = dp[0][3] = dp[0][4] = dp[0][5] = 0;for(i=1; i<=7489; i++){for(j=1; j<=5; j++){dp[i][j] = 0;if(5 == j){if(i>50) {dp[i][j] += dp[i-50][5]; dp[i][j] += dp[i-50][4]; dp[i][j] += dp[i-50][3]; dp[i][j] += dp[i-50][2]; dp[i][j] += dp[i-50][1];}else if(50 == i){dp[i][j] = 1;}}else if(4 == j){if(i>25) {dp[i][j] += dp[i-25][4]; dp[i][j] += dp[i-25][3]; dp[i][j] += dp[i-25][2]; dp[i][j] += dp[i-25][1];}else if(25 == i){dp[i][j] = 1;}}else if(3 == j){if(i>10) {dp[i][j] += dp[i-10][3]; dp[i][j] += dp[i-10][2]; dp[i][j] += dp[i-10][1];}else if(10 == i) {dp[i][j] = 1;}}else if(2 == j){if(i>5) {dp[i][j] += dp[i-5][2]; dp[i][j] += dp[i-5][1];}else if(5 == i) {dp[i][j] = 1;}}else if(1 == j){if(i>1) {dp[i][j] += dp[i-1][1];}else if(1 == i) {dp[i][j] = 1;}}}}int mon;//freopen("input.dat", "r", stdin);while(scanf("%d",&mon) != EOF){if(0 == mon){printf("1\n");continue;}sum = 0;for(i=0; i<=5; i++){sum += dp[mon][i];}printf("%lld\n", sum);}return 0;}
0 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
- 前向星
- LinuxJni / HelloWorld / gdb的使用/图像格式
- IOS高级开发~开机启动&无限后台运行&监听进程
- android双击视频全屏
- hibernate 中关联关系映射中inverse 和cascade的理解
- uva 674Coin Change
- 今天开始学习Android开发
- 记几个IOS工具网站
- Leetcode 线性表 Merge Two Sorted Lists
- sql server 和 oracle 中,ip与数字互转
- 嵌入式数据库移植Sqlite3
- 修改Myeclipse工作空间
- java使用axis调用WebService简单示例
- extjs api类(或组件)的名字相关说明