zoukankan      html  css  js  c++  java
  • 1501: 货币系统(money)

    1501: 货币系统(money)

    时间限制: 1 Sec  内存限制: 64 MB 提交: 33  解决: 12 [提交][状态][讨论版]

    题目描述

    母牛们不但创建了它们自己的政府,而且选择建立了自己的货币系统。它们对货币的数值感到好奇。传统地,一个货币系统是由1,5,10,20或25,50,100的单位面值组成的。母牛想知道用货币系统中的货币来构造一个确定的面值,有多少种不同的方法。 举例来说,使用一个货币系统{1,2,5,10,…}产生18单位面值的一些可能的方法是:18×1,9×2,8×2+2×1,3×5+2+1等等。写一个程序,计算用给定的货币系统来构造一个确定的面值有多少种方法。

    输入

    第1行有两个整数V,n,其中v(1≤V≤25)表示货币系统中货币的种类,n是要构造的面值(1≤n≤10000); 第2~v+l行:表示可用的货币面值(每行一个)。

    输出

    输出方案总数。

    样例输入

    3 10
    1
    2
    5
    

    样例输出

    10


    #include <iostream>
    #include <cstring>
    using namespace std;
    long long dp[11111];        //不能用int型
    long long kind[30];
    int main()
    {
        long long v,n;
        while(cin>>v>>n)
        {
            memset(dp,0,sizeof(dp));
            for(int i=0;i<v;i++)
                cin>>kind[i];
            dp[0]=1;
            for(int i=0;i<v;i++)
                for(int j=kind[i];j<=n;j++)
                    dp[j]+=dp[j-kind[i]];
            cout<<dp[n]<<endl;
        }
        return 0;
    }

  • 相关阅读:
    Lua 学习之基础篇七<Lua Module,Package介绍>
    Lua 学习之基础篇六<Lua IO 库>
    Lua 学习之基础篇五<Lua OS 库>
    Lua 学习之基础篇四<Lua table(表)>
    Lua 学习之基础篇三<Lua 字符串操作>
    时空穿梭
    【集训队作业】line
    动态几何问题
    博弈论与概率统计
    wombats
  • 原文地址:https://www.cnblogs.com/asuml/p/5680807.html
Copyright © 2011-2022 走看看