usaco2.3.4 Money Systems

【USACO题库】2.3.4 Money Systems货币系统 题目描述 母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统。他们对货币的数值感到好奇。传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的。母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是:18*1, 9*2, 8*2+2*1, 3* 阅读详情

一 原题

Money Systems

The cows have not only created their own government but they have chosen to create their own money system. In their own rebellious way, they are curious about values of coinage. Traditionally, coins come in values like 1, 5, 10, 20 or 25, 50, and 100 units, sometimes with a 2 unit coin thrown in for good measure.

The cows want to know how many different ways it is possible to dispense a certain amount of money using various coin systems. For instance, using a system of {1, 2, 5, 10, ...} it is possible to create 18 units several different ways, including: 18x1, 9x2, 8x2+2x1, 3x5+2+1, and many others.

Write a program to compute how many ways to construct a given amount of money using supplied coinage. It is guaranteed that the total will fit into both a signed long long (C/C++) and Int64 (Free Pascal).

PROGRAM NAME: money

INPUT FORMAT

The number of coins in the system is V (1 <= V <= 25).

The amount money to construct is N (1 <= N <= 10,000).

Line 1:Two integers, V and N
Lines 2..:V integers that represent the available coins (no particular number of integers per line)

SAMPLE INPUT (file money.in)

3 10
1 2 5

OUTPUT FORMAT

A single line containing the total number of ways to construct N money units using V coins.

SAMPLE OUTPUT (file money.out)

10



二 分析

完全背包。


三 代码

运行结果1:
USER: Qi Shen [maxkibb3]
TASK: money
LANG: C++

Compiling...
Compile: OK

Executing...
   Test 1: TEST OK [0.000 secs, 6524 KB]
   Test 2: TEST OK [0.000 secs, 6524 KB]
   Test 3: TEST OK [0.000 secs, 6524 KB]
   Test 4: TEST OK [0.000 secs, 6524 KB]
   Test 5: TEST OK [0.011 secs, 6524 KB]
   Test 6: TEST OK [0.011 secs, 6524 KB]
   Test 7: TEST OK [0.000 secs, 6524 KB]
   Test 8: TEST OK [0.000 secs, 6524 KB]
   Test 9: TEST OK [0.000 secs, 6524 KB]
   Test 10: TEST OK [0.086 secs, 6524 KB]
   Test 11: TEST OK [0.000 secs, 6524 KB]
   Test 12: TEST OK [0.335 secs, 6524 KB]
   Test 13: TEST OK [0.000 secs, 6524 KB]

All tests OK.

YOUR PROGRAM ('money') WORKED FIRST TIME! That's fantastic -- and a rare thing. Please accept these special automated congratulations.

AC代码1:
/*
ID:maxkibb3
LANG:C++
PROG:money
*/

#include<cstdio>

const int MAX_V = 30;
const int MAX_N = 10005;
int v, n;
int a[MAX_V];
long long dp[MAX_V][MAX_N];

int main() {
    freopen("money.in", "r", stdin);
    freopen("money.out", "w", stdout);
    scanf("%d%d", &v, &n);
    for(int i = 1; i <= v; i++) scanf("%d", &a[i]);
    dp[0][0] = 1;
    for(int i = 1; i <= v; i++) {
        for(int j = 0; j <= n; j++) {
            for(int k = 0; k <= j / a[i]; k++) {
                dp[i][j] += dp[i - 1][j - k * a[i]];
            }
        }
    }
    printf("%lld\n", dp[v][n]);
    return 0;
}

运行结果2:
USER: Qi Shen [maxkibb3]
TASK: money
LANG: C++

Compiling...
Compile: OK

Executing...
   Test 1: TEST OK [0.000 secs, 6524 KB]
   Test 2: TEST OK [0.000 secs, 6524 KB]
   Test 3: TEST OK [0.000 secs, 6524 KB]
   Test 4: TEST OK [0.000 secs, 6524 KB]
   Test 5: TEST OK [0.000 secs, 6524 KB]
   Test 6: TEST OK [0.000 secs, 6524 KB]
   Test 7: TEST OK [0.000 secs, 6524 KB]
   Test 8: TEST OK [0.000 secs, 6524 KB]
   Test 9: TEST OK [0.000 secs, 6524 KB]
   Test 10: TEST OK [0.000 secs, 6524 KB]
   Test 11: TEST OK [0.000 secs, 6524 KB]
   Test 12: TEST OK [0.000 secs, 6524 KB]
   Test 13: TEST OK [0.000 secs, 6524 KB]

All tests OK.

Your program ('money') produced all correct answers! This is your submission #2 for this problem. Congratulations!

AC代码2:
/*
ID:maxkibb3
LANG:C++
PROG:money
*/

#include<cstdio>

const int MAX_V = 30;
const int MAX_N = 10005;
int v, n;
int a[MAX_V];
long long dp[MAX_V][MAX_N];

int main() {
    freopen("money.in", "r", stdin);
    freopen("money.out", "w", stdout);
    scanf("%d%d", &v, &n);
    for(int i = 1; i <= v; i++) scanf("%d", &a[i]);
    dp[0][0] = 1;
    for(int i = 1; i <= v; i++) {
        for(int j = 0; j <= n; j++) {
            dp[i][j] = dp[i - 1][j];
            if(j >= a[i]) dp[i][j] += dp[i][j - a[i]];
        }
    }
    printf("%lld\n", dp[v][n]);
    return 0;
}


LT9611EX芯片实战:如何用双端口MIPI转HDMI1.4打造高清播放器(附配置代码) 本文详细介绍了如何使用龙迅半导体的LT9611EX芯片实现双端口MIPI转HDMI1.4的高清播放器开发。内容涵盖芯片特性、硬件设计要点、寄存器配置技巧及完整代码实现,特别适合嵌入式视频处理应用,如机顶盒和便携式媒体播放器。 阅读详情

相关推荐

WSL2迁移后用户名不见了?一招教你快速恢复Ubuntu22.04默认用户

本文针对WSL2迁移后Ubuntu 22.04默认用户名丢失的常见问题,提供了详细的诊断与修复方案。通过分析迁移底层逻辑,指导用户使用`ubuntu2204.exe config --default-user`命令或配置`/etc/wsl.conf`文件快速恢复用户身份,并涵盖权限修复、冲突解决及自动化迁移脚本等进阶内容,确保子系统迁移后环境完整可用。

web39explorer的博客 558

【USACO 2.3.4】货币系统

【描述】 母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统。由于它们特殊的思考方式,它们对货币的数值感到好奇。 传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的。 母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。 举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是...

Gregory99174的博客 645

Crazyflie 2.1固件刷写与地址配置全攻略:从开箱到连接Crazyswarm

本文详细介绍了Crazyflie 2.1微型无人机的固件刷写、地址配置及与Crazyswarm系统的集成方法。从开箱检查到多机协同飞行,涵盖了硬件准备、固件刷写、无线电地址修改等关键步骤,帮助用户快速实现集群飞行控制。特别针对Crazyswarm系统集成提供了实用配置示例和调试技巧。

weixin_42530458的博客 405

USACO2.3.4 Money Systems (money)

简单的dp问题 dp[ i ]表示组合出 i 可以有多少种方式 则再下一种货币x出现时,则有   for  i  =  x  to  n      dp[ i ] += dp [ i - x ] dp[ n ]即为答案 /* ID:xsy97051 LANG:C++ TASK:money */ #include #include #include using namespac

xsy_victory的专栏 404

自动驾驶仿真(六)—— SIL软件在环仿真测试

自动驾驶仿真六—— SIL软件在环仿真测试1. 在环仿真测试2. SIL软件在环仿真测试2.1 模型配置参数2.2 S function生成实现2.3 结果对比3. 参考学习的书目教材 博主前面的博文已经简要介绍了Carsim、Prescan 与 Simulink 在 “V”型开发流程的一些应用,现今成熟的汽车控制系统软件都是以(Model Based Design,MBD)来开发,它以图形化的方式表达复杂的逻辑、代码可读性、可移植性、开发调试便利程度都大大增强,同时利用成熟的代码生成工具链,也避免了手工代

zhudj08的博客 8651

中国全国地面站点数据(1981-2010)、月平均气象、月平均降水、月平均相对湿度、月最大降水、月最高温度最低温度、月最高温平均值最低温平均值、高低温站点基础数据,气候数据

中国全国地面站点数据(1981-2010)、月平均气象、月平均降水、月平均相对湿度、月最大降水、月最高温度最低温度、月最高温平均值最低温平均值、高低温站点基础数据 b_china_mon_avg_data_pressure月平均气象 b_china_mon_avg_data_rain月平均降水 b_china_mon_avg_data_rhu月平均相对湿度 b_china_mon_max_data_rain月最大降水 b_china_mon_max_min_data_tem月最高温度最低温度 b_china

无极低码 2万+

USACO 2.3.4 Money Systems 解题报告

Money Systems The cows have not only created their own government but they have chosen to create their own money system. In their own rebellious way, they are curious about values of coinage. Traditi...

weixin_30840573的博客 169

5G射频到底是啥?方案怎么搭?工作流程、SAW选型、PA选型一口气讲透(工程师秒懂版)

很多人一提 5G 射频,脑子里先冒出来的是几个零件名:👉 PA👉 LNA👉 SAW👉 天线👉 开关但真正做方案时,这些东西不是一堆分立器件,而是一条完整的“信号流水线”。更准确地说,。Qualcomm 对 RFFE 的定义就是“把信息转换成可发送的射频信号,并把接收到的信号转换回有用信息”的那一整套组件。

weixin_43199439的博客 533

USACO 2.3.3 货币系统 Money Systems

题解 完全背包问题,讨论的是放完的方案数,只要把各种情况加起来就好了。 我给了一个2维空间的答案比较直观,可以压缩到一维,但需要推一下公式。 Code // head files excluded using namespace std; int n,m,k; long long f[2][10002]; int cot[26]; int main(void){ cin&g...

蟋蟀的博客 367

YOLOv8【第四章:注意力机制篇·第20节】一文讲透,注意力机制设计原则与选择指南 - 从原理到实践的系统化方法论!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》,该专栏持续复现网络上各种热门内容(全网YOLO改进最全最新的专栏,质量分97分+,全网顶流),改进内容支持(分类、检测、分割、追踪、关键点、OBB检测)。且专栏会随订阅人数上升而涨价(毕竟不断更新),当前性价比极高,有一定的参考&学习价值,部分内容会基于现有的国内外顶尖人工智能AIGC等AI大模型技术总结改进而来,嘎嘎硬核。    ✨ 特惠福利:目前活动一折秒杀价!一次订阅,永久免费,所有后续更新内容均免费阅读!

**My Coding Family** 896

VTK实战完整教程介绍

该专栏以VTK提供的Example为基础,讲解VTK中的相关接口和使用方法。订阅该专栏,带你了解所有VTK的功能,以便VTK更好的解决工作中遇到的问题。一起学习起来吧!

qq_40041064的博客 2504

USACO 2.3.4 Money Systems

这道题是整数拆分的变形。

Lostwinder的专栏 645

【AI黑话日日新】什么是算力调度?

算力调度 = 在有限资源下,把任务智能分配到最合适的计算节点,实现效率、成本、稳定性最优。更完整的定义:算力调度是对 CPU、GPU、内存、网络、存储等异构资源进行统一抽象、感知、决策、分配、监控与自愈的全生命周期管理,是分布式系统的“智能管家”。算力调度不是玄学,它是资源管理 + 算法 + 工程实践的结合。先懂概念 → 再玩工具 → 再写策略 → 再优化算法从单机到集群,从CPU到GPU,从离线到在线,循序渐进未来AI与算力网络时代,算力调度是性价比最高、最稀缺、最长期吃香的技术方向之一。

专注:太空算力、AI infra、异构调度、大模型成本工程 266

USACO - 2.3.4 - Money Systems

  原创文章转载请注明出处 摘要:动态规划 ,完全背包问题 一. 题目翻译 1. 描述: 母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统。由于它们特殊的思考方式,它们对货币的数值感到好奇。 传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的。         母牛想知道有多少种不同的方...

12312312341234 187

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

USACO 2.3.4 Money Systems 动态归划

Money Systems The cows have not only created their own government but they have chosen to create their own money system. In their own rebellious way, they are curious about values of coinage. Tradi

403

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Money Systems_usaco2.3.4_dp

题目描述 Description母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统。由于它们特殊的思考方式,它们对货币的数值感到好奇。传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的。母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。举例来说, 使用一个货币系统 {1,2,5,10,…}产生 18单位面值的一些可能的方法是:18x

olahiuj的博客 465

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【USACO题库】2.3.4 Money Systems货币系统 题解

举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+1,等等其它。传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的。母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。写一个程序来计算有多少种方法用给定的货币系统来构造一定数量的面值。(1<= V<=25)可用的货币 V 个整数 (每行一个 每行没有其它的数)。单独的一行包含那个可能的构造的方案数。

cjm0230_yyds的博客 154

USACO 2.3.4 Money Systems dp

dp[i]+=dp[i-a]; dp[i]表示组成数 i 的方式的个数 View Code 1 #include <stdio.h> 2 3 int main() 4 { 5 int n,m,i,j,a; 6 long long dp[10005]={0}; 7 scanf("%d%d",&n,&m); 8 dp...

diaopi1575的博客 132

USACO 2.3.4 Money Systems(母函数)

思路:这又是一道母函数的题目,与前面那一道的区别在于,这次用的钱币是无限使用的。以题目给的数据为例,用1,2,5来凑出10。也就是模拟(1+x+x^2+x^3+x^4+x^5+x^6+x^7+x^8+x^9+x^10)(1+x^2+x^4+x^6+x^8+x^10)(1+x^5+x^10)意义很明确,对于1元的钱如果凑够10元,最多可以用10个1元来凑,所以又11种取法,对于2元的钱如果凑够10元

supersnow0622的专栏 907

USACO 2.3.4 Money Systems 货币系统(完全背包)

Description 母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统。 [In their own rebellious way],,他们对货币的数值感到好奇。 传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的。 母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。 举例来说, 使用一个货币系统 {1,2,5,1...

weixin_30363981的博客 279

Money Systems (money) (USACO 2.3.4)题解

基本题啊,可是我却不会做。 今天,两道基本的背包题目,只有一个做出来了。。 { ID:lstlst12 PROG:money LANG:PASCAL } program money; const MaxN=10000; var v

206

USACO 2.3 Money Systems 货币系统

题目大意 给出一个货币系统,即你有哪些面值的货币,问给出的数值有几种组成方式。   样例输入&amp;输出 sample input 3 10 1 2 5 sample output 10   分析&amp;反思 背包问题,复习一下。 完全背包,只不过存储的是方案数。 等于以前是判断方案是否更优,现在是有新方案就传过来。   代码 #include...

DWAE86的博客 576
上一篇: usaco2.3.1 Longest Prefix
下一篇: usaco2.3.5 Controlling Companies
max_kibble
博客等级 码龄11年 2粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值