zoukankan      html  css  js  c++  java
  • Dollars

    uva147:

    题意:给你几种钱币,在给你一个钱的数目,问有多少种用这些钱来组成这个数目。

    题解:完全背包,不过此时要把钱的数目*100,因为是小数,背包的容量都是整数,然后dp,求出每个容量的数目即可

     1 #include<cstring>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<iostream>
     5 #include<iomanip>
     6 using namespace std;
     7 int  we[13];
     8 long long dp[30003];
     9 int main(){
    10     we[1]=5;we[2]=10;we[3]=20;we[4]=50;we[5]=100;
    11     we[6]=200;we[7]=500;we[8]=1000;we[9]=2000;we[10]=5000;we[11]=10000;
    12          float ss;
    13         memset(dp,0,sizeof(dp));
    14         dp[0]=1;
    15         for(int i=1;i<=11;i++){
    16             for(int j=0;j<=30002;j++){
    17                    if(j>=we[i])
    18                      dp[j]+=dp[j-we[i]];
    19                 }
    20             }
    21      cout<<fixed<<showpoint<<setprecision(2);
    22      while(cin>>ss&&ss){
    23       cout<<setw(6)<<ss<<setw(17)<<dp[(int)(100*ss+0.5)]<<endl;//注意这里加0.5.是为了减少误差 
    24      }
    25         
    26    
    27 }
    View Code
  • 相关阅读:
    regedit注册表
    Environment应用
    VMI帮助类
    Image帮助类
    asp.net core+Postman
    printf和cout的区别详述
    C++指针
    Qt button和buttons区别
    visual studio收函数
    编译警告
  • 原文地址:https://www.cnblogs.com/chujian123/p/3402137.html
Copyright © 2011-2022 走看看