UVa 147 Dollars (浮点数完全背包)
2018-03-26 16:38
232 查看
题目:点击打开链接
题意:
有这些面值,给一个钱数求能够凑出的方案数。
思路:
完全背包,求方案数,dp[0]=1。
物品质量不变时可以先求出dp,直接输入输出。
注意精度问题,浮点数变整型时随便加个数让他加上去就行。#include<bits/stdc++.h>
#define ll long long int
using namespace std;
const int inf=0x3f3f3f3f;
ll dp[40005];
int coin[] = {5,10,20,50,100,200,500,1000,2000,5000,10000};
int main(){
dp[0]=1;
for(int i=0;i<=10;i++)
for(int j=coin[i];j<=30000;j++)
dp[j]+=dp[j-coin[i]];
double n;
while(cin>>n&&n){
int m=(int)(n*100+0.0001);
printf("%6.2f%17lld\n",n,dp[m]);
}
return 0;
}
题意:
有这些面值,给一个钱数求能够凑出的方案数。
思路:
完全背包,求方案数,dp[0]=1。
物品质量不变时可以先求出dp,直接输入输出。
注意精度问题,浮点数变整型时随便加个数让他加上去就行。#include<bits/stdc++.h>
#define ll long long int
using namespace std;
const int inf=0x3f3f3f3f;
ll dp[40005];
int coin[] = {5,10,20,50,100,200,500,1000,2000,5000,10000};
int main(){
dp[0]=1;
for(int i=0;i<=10;i++)
for(int j=coin[i];j<=30000;j++)
dp[j]+=dp[j-coin[i]];
double n;
while(cin>>n&&n){
int m=(int)(n*100+0.0001);
printf("%6.2f%17lld\n",n,dp[m]);
}
return 0;
}
相关文章推荐
- uva 147 - Dollars 钱币兑换问题(浮点数) 精度问题 完全背包
- Uva 147 Dollars(是完全背包)
- uva147 - Dollars(完全背包)
- UVa 147 Dollars(完全背包)
- Uva 147 Dollars 完全背包
- UVA - 147 Dollars(完全背包)
- 【完全背包】UVA 147 Dollars
- uva 147 Dollars (dp + 完全背包)
- uva 147 Dollars(完全背包)
- uva 147 Dollars(完全背包)
- UVA 147 Dollars 完全背包
- UVa 147 Dollars(DP完全背包)
- Uva 147 Dollars 完全背包
- UVA 147 Dollars 完全背包 Commencel
- uva 147 - Dollars(动态规划--完全背包)
- uva 147 Dollars(完全背包)
- UVA 147 Dollars(完全背包)
- UVA 147 Dollars(完全背包)
- UVA 147 Dollars ( 完全背包+求解方案数精度问题)
- 【解题报告】uva147_Dollars(美元, dp, 完全背包)