zoukankan      html  css  js  c++  java
  • UVA147——DP(找钱2)——Dollars

    Description

    Download as PDF
     

    New Zealand currency consists of $100, $50, $20, $10, and $5 notes and $2, $1, 50c, 20c, 10c and 5c coins. Write a program that will determine, for any given amount, in how many ways that amount may be made up. Changing the order of listing does not increase the count. Thus 20c may be made up in 4 ways: 1 tex2html_wrap_inline25 20c, 2 tex2html_wrap_inline25 10c, 10c+2 tex2html_wrap_inline25 5c, and 4 tex2html_wrap_inline25 5c.

    Input

    Input will consist of a series of real numbers no greater than $300.00 each on a separate line. Each amount will be valid, that is will be a multiple of 5c. The file will be terminated by a line containing zero (0.00).

    Output

    Output will consist of a line for each of the amounts in the input, each line consisting of the amount of money (with two decimal places and right justified in a field of width 6), followed by the number of ways in which that amount may be made up, right justified in a field of width 17.

    Sample input

    0.20
    2.00
    0.00

    Sample output

      0.20                4
      2.00              293
    大意:同UVA647 double转换成int为什么要加0.5.....
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    long long  dp[30005][15];
    int v[11] = {5,10,20,50,100,200,500,1000,2000,5000,10000};
    long long  DP(long long  i,long long  j)
    {
        if(dp[i][j] != -1)
            return dp[i][j];
        dp[i][j] = 0;
        for(int k = 0 ; i-k*v[j] >= 0; k++)
            dp[i][j] += DP(i-k*v[j],j-1);
        return dp[i][j];
    }
    int main()
    {
        memset(dp,-1,sizeof(dp));
        double n;
        while(~scanf("%lf",&n)){
            if(n == 0.00)
                break ;
          int  m =(int)(n*100+0.5);
            for(long long  i = 0 ; i <= m; i++)
                dp[i][0] = 1;
                printf("%6.2f%17lld
    ",n,DP(m,10));
        }
        return 0;
    }
    View Code
     
  • 相关阅读:
    Spring面试,IoC和AOP的理解
    WEB打印(jsp版)
    Spring事务管理机制的实现原理-动态代理
    spring面试题
    oracle PLSQL基础学习
    oracle创建表空间
    WM_CONCAT字符超过4000的处理办法
    Oracle 数据泵使用详解
    Oracle 数据泵详解
    linux下启动oracle
  • 原文地址:https://www.cnblogs.com/zero-begin/p/4464102.html
Copyright © 2011-2022 走看看