zoukankan      html  css  js  c++  java
  • 2021寒假每日一题《货币系统》

    货币系统

    题目来源:usaco training 2.3
    时间限制:1000ms 内存限制:64mb

    题目描述

    给定 (V) 种货币(单位:元),每种货币使用的次数不限。
    不同种类的货币,面值可能是相同的。
    现在,要你用这 (V) 种货币凑出 (N) 元钱,请问共有多少种不同的凑法。

    输入格式

    第一行包含两个整数 (V)(N)
    接下来的若干行,将一共输入 (V) 个整数,每个整数表示一种货币的面值。

    输出格式

    输出一个整数,表示所求总方案数。

    数据范围

    (1 ≤ V ≤ 25) ,
    (1 ≤ N ≤ 10000) ,
    答案保证在 C/C++:long long Java:long 范围内。

    样例输入

    3 10
    1 2 5
    

    样例输出

    10
    

    解题思路

    解题代码-Java

    import java.util.*;
    
    public class Main {
        static long getPlanCount(int[] money, int n) {
            int len = money.length;
            long[][] dp = new long[len + 1][n + 1];
            dp[0][0] = 1;
    
            for (int i = 1; i <= len; i++) {
                int vi = money[i - 1];
                for (int j = 0; j <= n; j++) {
                    dp[i][j] = dp[i - 1][j];
                    if (j >= vi) {
                        dp[i][j] += dp[i][j - vi];
                    }
                }
            }
            return dp[len][n];
        }
    
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            int v = input.nextInt();
            int n = input.nextInt();
            int[] money = new int[v];
            for (int i = 0; i < v; i++) {
                money[i] = input.nextInt();
            }
            input.close();
            System.out.println(getPlanCount(money, n));
        }
    }
    
  • 相关阅读:
    HDU 5338(ZZX and Permutations-用线段树贪心)
    编程之美-活动中心(三分)
    form的method用get导致中文乱码
    Tomcat: Could not clean server of obsolete files
    Eclipse打开javadoc框
    Java EE各种documentation
    web-project的/WEB-INF/lib
    在jsp里面不要瞎用<!-- -->注释
    [流水账]搜索与web-container版本匹配的jar包
    session的创建与销毁
  • 原文地址:https://www.cnblogs.com/hurentian/p/14317831.html
Copyright © 2011-2022 走看看