钱币兑换问题 HDU 1284
2015-03-28 19:44
211 查看
钱币兑换问题
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 6538 Accepted Submission(s): 3780
Problem Description
在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。
Input
每行只有一个正整数N,N小于32768。
Output
对应每个输入,输出兑换方法数。
Sample Input
2934
12553
Sample Output
718831
13137761
1,先确定3分硬币的最大值,然后求出每一种3分硬币取的值时二分硬币能取的最大值,即此时取二分硬币的种数为2分币的最大值加一(二分币可以取零)。将所有二分币此时的总数累加即得最终值。(将题目转换为根据3分币的取值情况求二分币的情况总数)
2,网上看别人的代码据说这是一个完全背包问题,好吧,现在水平不够,还看不太懂,有兴趣的同学可以看看。
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 6538 Accepted Submission(s): 3780
Problem Description
在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。
Input
每行只有一个正整数N,N小于32768。
Output
对应每个输入,输出兑换方法数。
Sample Input
2934
12553
Sample Output
718831
13137761
1,先确定3分硬币的最大值,然后求出每一种3分硬币取的值时二分硬币能取的最大值,即此时取二分硬币的种数为2分币的最大值加一(二分币可以取零)。将所有二分币此时的总数累加即得最终值。(将题目转换为根据3分币的取值情况求二分币的情况总数)
2,网上看别人的代码据说这是一个完全背包问题,好吧,现在水平不够,还看不太懂,有兴趣的同学可以看看。
#include<iostream> #include<cstring> #include<math.h> #include <stdio.h> using namespace std; int main() { int one,two,three; int N,flag = 0; while(~scanf("%d",&N)) { flag =0 ; three = N /3; for(int i = 0; i <= three; i++) { two = (N - (i * 3))/2; flag += (two+1); } if(N) cout << flag <<endl; else cout << "0" << endl; } return 0; }
相关文章推荐
- hdu 1284 钱币兑换问题 完全背包
- HDU 1284 钱币兑换问题
- HDU1284钱币兑换问题( 母函数打表)
- hdu 1284 钱币兑换问题 (DP)
- hdu 1284 钱币兑换问题 (DP)
- HDU 1284 钱币兑换问题 母函数 or 完全背包
- HDU 1284 钱币兑换问题
- hdu 1284 钱币兑换问题
- hdu 1284 钱币兑换问题
- HDU 1284 钱币兑换问题
- hdu1284 钱币兑换问题 ——DP
- HDU_1284 钱币兑换问题(生成函数)
- 母函数简介及简单使用(附HDU 1284 钱币兑换问题 解题报告)
- HDU1284钱币兑换问题( 母函数打表)
- HDU 1284 钱币兑换问题
- HDU 1284 钱币兑换问题
- 母函数简介及简单使用(附HDU 1284 钱币兑换问题 解题报告)
- hdu 1284钱币兑换问题(神奇)
- HDU 1284 钱币兑换问题 动态规划完全背包
- HDU 1284 钱币兑换问题