UVa 674 - Coin Change
2013-03-01 16:34
316 查看
“硬币问题”经典的记忆化搜索。注意找的是有多少种类。而不是最少用多少硬币。
将正常的算法改为2维的即可。。。
将正常的算法改为2维的即可。。。
#include <iostream> #include <cstring> #include <algorithm> using namespace std; int Case, d[7500][6]; int V[6] = { 0, 1, 5, 10, 25, 50 }; int dp ( int S, int x ) { if ( d[S][x] >= 0 ) return d[S][x]; d[S][x] = 0; for ( int i = x; i <= 5; ++i ) { if ( S >= V[i] ) d[S][x] += dp ( S - V[i], i ); } return d[S][x]; } int main ( ) { memset ( d, -1, sizeof ( d ) ); for ( int i = 0; i <= 5; d[0][i] = 1, ++i ) ; while ( cin >> Case ) { cout << dp ( Case, 1 ) << endl; } }
相关文章推荐
- UVA 674 - Coin Change
- uva 674 - Coin Change(dp)
- [背包九讲笔记] UVa 674 Coin Change
- UVa 674 & hdu 2069 Coin Change (母函数,dp)
- UVA-674-Coin Change
- UVA - 674 - Coin Change (背包型DP)
- Uva 674 Coin Change
- UVa674 Coin Change
- uva 674 Coin Change
- UVa 674 - Coin Change
- UVA674-Coin Change,用动归思想来递推!
- UVA674 Coin Change【0/1背包+DP】
- UVA - 674 Coin Change
- 【解题报告】uva674_Coin Change(硬币找零, dp, 完全背包)
- uva 674 - Coin Change 动态规划
- Uva - 674 - Coin Change
- uva:674 - Coin Change
- UVa 674 - Coin Change
- uva 674 Coin Change
- UVa-674 - Coin Change 不同面值找零的方案数