HDU 2069 —— Coin Change
来源:互联网 发布:windows远程协助 编辑:程序博客网 时间:2024/05/16 16:14
原题:http://acm.hdu.edu.cn/showproblem.php?pid=2069
思路:需要注意一个条件,组合的硬币数不能超过100。把数组开成二维的,dp[i][j] 表示用 j 个硬币组成 i 的方式有多少种。
#include <iostream>#include <cstring>#include <string>const int maxn = 300;using namespace std;int dp[maxn][maxn], tmp[maxn][maxn];int ans[maxn];int a[5] = {1, 5, 10, 25, 50};void Init(){ for(int n = 1;n<=250;n++){ memset(tmp, 0, sizeof tmp); memset(dp, 0, sizeof dp); for(int i = 0;i<=n;i++) dp[i][i] = 1; for(int i = 1;i<5;i++){ for(int j = 0;j<=n;j++){ for(int t = 0;t<=100;t++){ if(dp[j][t] == 0) continue; for(int k = 0;k*a[i]+j<=n;k++){ if(k+t > 100) break; tmp[k*a[i]+j][t+k] += dp[j][t]; } } } memcpy(dp, tmp, sizeof tmp); memset(tmp, 0, sizeof tmp); } for(int i = 1;i<=100;i++){ ans[n] += dp[n][i]; } } ans[0] = 1;}int main(){ Init(); int n; while(cin>>n){ cout<<ans[n]<<endl; } return 0;}
0 0
- hdu(2069)——Coin Change
- HDU 2069 —— Coin Change
- HDU 2069 Coin Change
- hdu 2069 Coin Change
- HDU 2069 Coin Change
- HDU 2069 Coin Change
- hdu 2069 Coin Change
- HDU 2069 Coin Change
- hdu 2069 Coin Change
- hdu 2069 Coin Change
- hdu-2069-Coin Change
- HDU 2069 Coin Change
- hdu---2069Coin Change
- HDU 2069 Coin Change
- HDU 2069 Coin Change
- HDU-2069-Coin Change
- hdu 2069 Coin Change
- HDU#2069: Coin Change
- Genymotion镜像下载慢的解决办法
- 关于Android 6.0的新特性
- Java多态及静态方法对动态方法的调用
- WJ的逃离
- 【Linux 内核网络协议栈源码剖析】connect 函数剖析(一)
- HDU 2069 —— Coin Change
- C Primer Plus学习 四十七 向函数传递结构信息 (二)
- 第一坑
- OSPF基础
- 关于Android 7.0的新特性
- Java中double和float精度丢失问题及解决方法
- HDU2717 Catch That Cow
- jQuery 基础核心
- logstash+grok+json+elasticsearch解析复杂日志数据(一)