zoukankan      html  css  js  c++  java
  • 货币系统

    给你一个n种面值的货币系统,求组成面值为m的货币有多少种方案。

    输入格式
    第一行,包含两个整数n和m。

    接下来n行,每行包含一个整数,表示一种货币的面值。

    输出格式
    共一行,包含一个整数,表示方案数。

    数据范围
    n≤15,m≤3000
    输入样例:
    3 10
    1
    2
    5
    输出样例:
    10

    思路:完全背包的题目 每一张可以无限取 先枚举每一张货币的面值, 然后从小到大枚举拥有的钱 可以得到 当面值确定时候 我们的钱的确切拼法 一样每一张当前纸币可以选着 或者不选 不选当前纸币 然后拼出我们的钱的方案数 加上 选着当前纸币的方案数

    #include <iostream>
    #include <cstring>
    using namespace std;
    const int N = 3010;
    
    int n , m;
    typedef long long LL;
    LL dp[N];
    int main()
    {
        cin >> n >> m ;
        dp[0] = 1;
        for(int i  = 0 ; i < n ; i ++)
        {
            int v ;
            cin >> v;
            for(int j = 1 ; j <= m ; j ++)
            {
             
                if(j >= v)
                dp[j] += dp[j-v];
            }
        }
        cout << dp[m] << endl;
        
        return 0 ;
        
    }
    
    
  • 相关阅读:
    BZOJ3512 DZY Loves Math IV
    HDU5608 function
    数论
    动态点分治
    tarjan
    插头DP
    斯坦纳树
    css中的display(显示)和visibility(可见性)
    简单的数据整理, 递归算法
    java链接数据库构建sql语句的时候容易记混的地方
  • 原文地址:https://www.cnblogs.com/wk-love-zsy/p/13894379.html
Copyright © 2011-2022 走看看