• 货币系统 Money Systems


    母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统。由于它们特殊的思考方式,它们对货币的数值感到好奇。
    
    传统地,一个货币系统是由1,5,10,2025,50, 和 100的单位面值组成的。
    
    母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。
    
    举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+1,等等其它。 写一个程序来计算有多少种方法用给定的货币系统来构造一定数量的面值。保证总数将会适合long long (C/C++) 和 Int64 (Free Pascal),即在0 到2^63-1之间。
    
    输入输出格式
    输入格式:
    货币系统中货币的种类数目是 V (1<=V<=25)。要构造的数量钱是 N (1<= N<=10,000)。
    
    第一行: 二个整数,V 和 N 。
    
    第二行: 可用的货币的面值 。
    
    输出格式:
    
    输出格式:
    单独的一行包含那个可能的用这v种硬币凑足n单位货币的方案数。
    
    输入输出样例
    输入样例#13 10
    1 2 5
    输出样例#110
    说明
    翻译来自NOCOW
    
    USACO 2.3
    题目描述

    裸的完全背包求方案数,记得开LL

    不然会炸

     1 #include<bits/stdc++.h>
     2 #define DB double
     3 #define ll long long
     4 using namespace std;
     5 int V,n,a[30];
     6 ll f[1000000];
     7 int main()
     8 {
     9     scanf("%d%d",&n,&V);
    10     for(int i=1;i<=n;++i) scanf("%d",&a[i]);
    11     f[0]=1;
    12     for(int i=1;i<=n;++i)
    13      for(int j=a[i];j<=V;++j)
    14       f[j]+=f[j-a[i]];
    15     cout<<f[V];
    16     return 0;
    17 }
    View Code
  • 相关阅读:
    redis 事务 lq
    redis集群架构高可用分析 lq
    redis分布式锁 lq
    jvm垃圾回收 lq
    【攻防世界】逆向666
    第六届上海市大学生网络安全大赛wp
    【攻防世界】逆向answer_to_everying
    2021 DJBCTF(大吉大利杯) wp
    渗透靶机bossplayersCTF
    2020首届祥云杯部分wp
  • 原文地址:https://www.cnblogs.com/adelalove/p/9235856.html
Copyright © 2020-2023  润新知