zoukankan      html  css  js  c++  java
  • B

    Description

    设有n种不同面值的硬币,各硬币的面值存于数组T[1:n]中。现要用这些面值的硬币来找钱。可以使用的各种面值的硬币个数存于数组Coins[1:n]中。
    对任意钱数0≤m≤20001,设计一个用最少硬币找钱m的方法。
    对于给定的1≤n≤10,硬币面值数组T和可以使用的各种面值的硬币个数数组Coins,以及钱数m,0≤m≤20001,计算找钱m的最少硬币数。

    Input

    输入数据第一行中只有1个整数给出n的值,第2行起每行2个数,分别是T[j]和Coins[j]。最后1行是要找的钱数m。

    Output

    输出数据只有一个整数,表示计算出的最少硬币数。问题无解时输出-1。

    Sample

    Input 

    3
    1 3
    2 3
    5 3
    18

    Output 

    5
     1 #include <iostream>
     2 #include <algorithm>
     3 #include <string.h>
     4 #define inf 0x3f3f3f3f
     5 using namespace std;
     6 
     7 int main()
     8 {
     9     int n, m, i, j, k;
    10     int T[15], Coin[15], dp[20005];
    11     cin >> n;
    12     for(i=0;i<n;i++)
    13     {
    14         cin >> Coin[i] >> T[i];
    15     }
    16     cin >> m;
    17     memset(dp, inf, sizeof(dp));
    18     dp[0] = 0;
    19     for(i=0;i<n;i++)
    20     {
    21         for(j=0;j<T[i];j++)
    22         {
    23             for(k=m;k>=Coin[i];k--)
    24             {
    25                 dp[k] = min(dp[k], dp[k-Coin[i]]+1);
    26             }
    27         }
    28     }
    29     if(dp[m]==inf) cout << "-1" << endl;
    30     else cout << dp[m] << endl;
    31     return 0;
    32 }
  • 相关阅读:
    Python设计模式
    Python设计模式
    Python设计模式
    Python设计模式
    Python设计模式
    Python设计模式
    Python设计模式
    Python设计模式
    composer安装以及更新问题,配置中国镜像源。
    PHP使用文件排它锁,应对小型并发
  • 原文地址:https://www.cnblogs.com/0xiaoyu/p/13765314.html
Copyright © 2011-2022 走看看