zoukankan      html  css  js  c++  java
  • Problem H: [USACO 2.3.4]货币系统

    Problem H: [USACO 2.3.4]货币系统

    http://www.acmore.net/problem.php?cid=1012&pid=7

    Time Limit: 1 Sec  Memory Limit: 64 MB
    Submit: 42  Solved: 23

    Description

    母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统。 [In their own rebellious way],,他们对货币的数值感到好奇。传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的。母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+1,等等其它。写一个程序来计算有多少种方法用给定的货币系统来构造一定数量的面值。保证总数将会适合long long (C/C++) 和 Int64 (Free Pascal)。

    Input

    货币系统中货币的种类数目是 V 。 (1<= V<=25) 要构造的数量钱是 N 。 (1<= N<=10,000) 第 1 行: 二整数, V 和 N 第 2 ..V+1行: 可用的货币 V 个整数 (每行一个 每行没有其它的数)。

    Output

    单独的一行包含那个可能的构造的方案数。

    Sample Input

    3 10 1 2 5

    Sample Output

    10

    HINT

     
    设f[i,j]表示用前i种硬币能表示j数量货币的方法数:
    则f[i,j]=f[i-1,j]+f[i-1,j-a[i]];//即前i种硬币能表示j货币的种类=不用第i种硬币能表示的j货币的种类+用上第i种货币能表示j货币的种类
    当然这个方程在空间上还可以简化为一维的(详见《背包九讲》)
    所以最后部分的核心代码就是:
    		for (int j=0;j<V;j++)
           			 for (int i=a[j];i<=N;i++)
               			f[i]+=f[i-a[j]];


    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    
    using namespace std;
    
    int V,N;
    int money[40];
    long long dp[10100];
    
    int main(){
    
        //freopen("input.txt","r",stdin);
    
        while(~scanf("%d%d",&V,&N)){
            for(int i=0;i<V;i++)
                scanf("%d",&money[i]);
            sort(money,money+V);
            memset(dp,0,sizeof(dp));
            dp[0]=1;
            for(int i=0;i<V;i++)
                for(int j=money[i];j<=N;j++)
                    dp[j]=dp[j]+dp[j-money[i]];
            printf("%lld\n",dp[N]);
        }
        return 0;
    }
  • 相关阅读:
    解决ListView异步加载数据之后不能点击的问题
    android点击实现图片放大缩小 java技术博客
    关于 数据文件自增长 的一点理解
    RAC 实例不能启动 ORA1589 signalled during ALTER DATABASE OPEN
    Linux 超级用户的权利
    RAC 实例 迁移到 单实例 使用导出导入
    Shell 基本语法
    Linux 开机引导与关机过程
    RAC 实例不能启动 ORA1589 signalled during ALTER DATABASE OPEN
    Oracle RAC + Data Guard 环境搭建
  • 原文地址:https://www.cnblogs.com/jackge/p/3053463.html
Copyright © 2011-2022 走看看