当前位置: 首页 > wzjs >正文

网页游戏排行榜大全seo人才

网页游戏排行榜大全,seo人才,wordpress ip排行,品牌网站建设费用问题描述 近期,黄开的银行新发行了一种面额为 4 的钞票,使得钞票种类增至 5 种:20、10、5、4 和 1 元。银行在发钞时十分“节俭”,当有客户取钱时,需要以最少的钞票数来满足取款金额。 问题要求: 对于给定…

问题描述

近期,黄开的银行新发行了一种面额为 4 的钞票,使得钞票种类增至 5 种:20、10、5、4 和 1 元。银行在发钞时十分“节俭”,当有客户取钱时,需要以最少的钞票数来满足取款金额。 问题要求: 对于给定的金额 n(1 ≤ n ≤ 10000),求出凑成该金额所需的最少钞票数量。

输入格式: 输入包含不超过 10 组测试数据,每组数据给出一个整数 n。

输出格式: 对每组测试数据输出一个整数,表示最少所需钞票数。

输入样例:

 2026

输出样例:

 122

2. 动态规划核心思路

动态规划(DP)的核心思想是 记住历史,我们逐步计算 dp[i],即金额 i 的最小钞票数。

关键步骤

1️⃣ 定义 dp 数组

  • dp[i] = 凑出金额 i 的最少钞票数

2️⃣ 初始化

  • dp[0] = 0(凑 0 元需要 0 张钞票)

  • 其余初始值设为 (表示不可达)

3️⃣ 状态转移方程: 对于每个金额 i 和面额 coin

 if i >= coin:dp[i] = min(dp[i], dp[i - coin] + 1)

即当前金额的最优解 = 使用 coin 面额后的剩余金额的解 + 1。这意味着:使用一张面额为 coin 的钞票后,剩余金额 i - coin 的最优解加上这张钞票即为候选答案。


代码实现

以下给出完整的 Java 实现示例:

 import java.util.Scanner;import java.util.Arrays;​public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int[] coins = {20, 10, 5, 4, 1}; // 钞票面额​while (scanner.hasNext()) {int n = scanner.nextInt();int[] dp = new int[n + 1]; // dp 数组,用于存储各金额所需的最少钞票数// 初始化 dp 数组Arrays.fill(dp, Integer.MAX_VALUE);dp[0] = 0; // 0 元不需要钞票// 状态转移:从 1 到 n 逐步求解for (int i = 1; i <= n; i++) {for (int coin : coins) {if (i >= coin && dp[i - coin] != Integer.MAX_VALUE) {dp[i] = Math.min(dp[i], dp[i - coin] + 1);}}}// 输出金额 n 所需的最少钞票数System.out.println(dp[n]);}scanner.close();}}

💡 代码亮点

  • 面额降序排列:优先尝试大面额,减少计算次数

  • 边界检查:确保 dp[i - coin] 有效

示例解析

以样例输入 6 为例,详细说明动态规划过程:

  1. 初始化dp[0] = 0,其余 dp[1...6] 均初始化为无穷大。

  2. 计算 dp[1]

    • 只有使用 1 元钞票:dp[1] = dp[0] + 1 = 1

  3. 计算 dp[2]

    • 使用两张 1 元:dp[2] = dp[1] + 1 = 2

  4. 计算 dp[3]

    • 使用三张 1 元:dp[3] = dp[2] + 1 = 3

  5. 计算 dp[4]

    • 直接使用 4 元钞票:dp[4] = dp[0] + 1 = 1

    • 使用 1 元钞票方案为:dp[4] = dp[3] + 1 = 4; 取较优解,故 dp[4] = 1

  6. 计算 dp[5]

    • 使用 5 元钞票:dp[5] = dp[0] + 1 = 1

    • 使用组合方案:4 + 1 元,dp[5] = dp[1] + 1 = 2; 取较优解,故 dp[5] = 1

  7. 计算 dp[6]

    • 使用 5 元 + 1 元:dp[6] = dp[1] + 1 = 2

    • 使用 4 元 + 1 元 + 1 元:dp[6] = dp[2] + 1 = 3; 取较优解,故 dp[6] = 2

最终,对于输入 6,答案为 2 张钞票(即 5 元 + 1 元)。


  • *复杂度分析

    ⏱️ 时间复杂度O(n × m)m=面额数量

    • 外层循环 n 次,内层循环 m

    💾 空间复杂度O(n)

    • 存储 dp 数组


蓝桥杯备赛小贴士 🚀

1️⃣ 刷题技巧

  • 同类 DP 题目(背包、硬币问题)集中练习

  • 先用小规模数据验证代码逻辑

2️⃣ 竞赛优化

  • 大面额优先:减少 DP 计算次数

  • 预处理 dp 数组:若多组查询,可全局计算一次 dp[10000]

3️⃣ 常见误区

  • 未初始化 dp[0] = 0 导致错误

  • 漏掉面额可整除的情况(如 n=20 直接返回 1

4️⃣ 延伸思考: ❓ 如果面额包含 7,最优解会如何变化? (提示:6=5+1 vs 6=4+2→ 需重新推导 DP 表)

✏️ 互动:你在动态规划题中遇到过哪些难题?欢迎评论区讨论!👇


🔥 总结:本文通过 问题分析 → DP 建模 → 代码实现 → 优化技巧 完整解析了蓝桥杯高频题型,快来收藏练习吧!

http://www.dtcms.com/wzjs/435901.html

相关文章:

  • 广州网站建设 美词天琥设计培训学校官网
  • 网站设计流程图广州网站设计
  • 在香港注册公司需要什么条件seo课程培训学校
  • 乌克兰集团网站建设网络营销与直播电商
  • 自己如何建一个网站北京网络营销策划公司
  • 阜阳网站建设推广seo技术公司
  • 重庆做网站的程序员待遇竞价推广招聘
  • 写出网站建设的基本流程免费创建个人网站
  • 服务器做视频网站吗网站关键词优化代理
  • 报纸网站建设网站推广优化排名公司
  • wordpress主题的网站模板网站推广一般多少钱
  • 东莞建网站平台seo网站关键词优化费用
  • 把网站内的文本保存到txt怎么做济南网站制作公司
  • 有哪些网站用mysqlseo臻系统
  • 用服务器ip可以做网站吗上海关键词排名软件
  • 阿里云注册域名流程如何做seo搜索引擎优化
  • 芜湖市住房和城乡建设厅网站首页小网站怎么搜关键词
  • 佛山黄页企业名录seo专员是什么职业
  • 常州武进网站建设seo专员是什么
  • 网站优化目录app推广团队
  • 莱芜搬家公司电话搜索引擎优化策略应该包括
  • 做网站服务好网站推广如何做
  • 电影网站建设的核心是如何推广自己的店铺?
  • 义乌企业网站搭建首选惠东seo公司
  • 网店图片设计制作厦门seo外包公司
  • win7做系统网站哪个好搜狗网站收录入口
  • 哈尔滨建设信息工程网网站如何seo推广
  • 网站建设计划百度推广一年多少钱
  • 湘潭做网站 磐石网络很专业百度账号批发网
  • 商城网站建设预算要多少钱域名收录提交入口