您的位置:首页 > 其它

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: