news 2026/7/14 10:05:19

UVa 674 Coin Change

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
UVa 674 Coin Change

题目描述

给定555种硬币:505050美分、252525美分、101010美分、555美分和111美分。对于任意金额(单位:美分),求用这些硬币组成该金额的不同方式数(不考虑顺序)。金额最大为748974897489美分。

输入格式

多行输入,每行一个整数,表示金额(单位:美分)。

输出格式

对于每个金额,输出一行整数,表示不同的组成方式数。

样例

输入

11 26

输出

4 13

题目分析

本题是完全背包问题(硬币无限使用)的组合计数,且硬币面额固定。使用动态规划,dp[i][j]表示使用前i种硬币组成金额j的方式数。状态转移为:

  • 不使用第i种硬币:dp[i-1][j]
  • 使用第i种硬币:dp[i][j - coins[i]](至少使用一枚)

最终dp[5][j]即为答案。

解题思路

  1. 定义硬币面额数组coins[1..5] = {1, 5, 10, 25, 50}
  2. 初始化dp[0][0] = 1,其余为 0。
  3. 对每种硬币i从 1 到 5:
    • 对金额j从 0 到MAX
      • dp[i][j] = dp[i-1][j](不用该种硬币)
      • j >= coins[i],则dp[i][j] += dp[i][j - coins[i]](用该种硬币)
  4. 查询时直接输出dp[5][cents]

由于金额最大 7489,使用long long存储结果(数量可能较大)。

复杂度分析

  • 预计算:O(5×7490)O(5 \times 7490)O(5×7490),约3.7×1043.7 \times 10^43.7×104,极快。
  • 查询:O(1)O(1)O(1)

代码实现

// Coin Change// UVa ID: 674// Verdict: Accepted// Submission Date: 2016-08-17// UVa Run Time: 0.000s//// 版权所有(C)2016,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;intmain(){cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);intcoins[6]={0,1,5,10,25,50};longlongintways[6][7500];memset(ways,0,sizeof(ways));ways[0][0]=1;for(inti=1;i<=5;i++)for(intj=0;j<=7489;j++){ways[i][j]=ways[i-1][j];if(j-coins[i]>=0)ways[i][j]+=ways[i][j-coins[i]];}intcents;while(cin>>cents)cout<<ways[5][cents]<<'\n';return0;}

总结

本题是完全背包计数问题的标准解法,通过动态规划递推,以硬币种类为阶段,金额为状态,累加组合数。关键点包括:

  • 二维DP\texttt{DP}DP清晰表示状态转移。
  • 注意金额为000时有一种方式(什么都不用)。
  • 使用long long防止溢出。

该解法是动态规划入门经典题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 10:05:15

exVim项目化管理详解:为什么.exvim文件能改变你的编程体验

exVim项目化管理详解&#xff1a;为什么.exvim文件能改变你的编程体验 【免费下载链接】main This is the main repository for exVim! 项目地址: https://gitcode.com/gh_mirrors/main55/main 想要将Vim打造成终极IDE吗&#xff1f;exVim项目化管理工具通过创新的.exvi…

作者头像 李华
网站建设 2026/7/14 10:04:19

Nemotron-CLIMB代理模型转换指南:从Megatron-LM到HuggingFace格式

Nemotron-CLIMB代理模型转换指南&#xff1a;从Megatron-LM到HuggingFace格式 【免费下载链接】nemotron-climb-proxy-models 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/nemotron-climb-proxy-models 想要在HuggingFace生态系统中使用Nemotron-CLIMB代理模型…

作者头像 李华
网站建设 2026/7/14 9:59:32

杰理之内置FM搜台软件调试方法【篇】

用认可的收音机/对比样机先搜一次台&#xff0c;记录下当前位置的清晰台(人声清晰/基本没有雪花声)对应频点 不同天气、不同时间段、不同位置、实际收台效果会有差别&#xff0c;在调试 FM 时要有对比样机做参考&#xff0c;且使用整机测试&#xff1b;&#xff08;拿笔记录下对…

作者头像 李华
网站建设 2026/7/14 9:58:52

昇腾AI处理器归一化操作:深度学习模型训练加速与稳定性保障技术

昇腾AI处理器归一化操作&#xff1a;深度学习模型训练加速与稳定性保障技术 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0…

作者头像 李华
网站建设 2026/7/14 9:55:12

模板驱动型文档自动化:从重复劳动到确定性交付

1. 项目概述&#xff1a;当文档生产变成“填空游戏”&#xff0c;Sqribble如何用模板引擎重构内容工作流你有没有过这种体验&#xff1a;每周一早上打开电脑&#xff0c;第一件事不是写方案&#xff0c;而是打开Word&#xff0c;复制粘贴上上周的封面、目录结构、公司LOGO位置、…

作者头像 李华