货币凑面值类题目

2023-11-09 02:20
文章标签 题目 货币 面值

本文主要是介绍货币凑面值类题目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

货币凑面值类题目

  • 分类,限制/不限制某面值的使用张数,同面值的相同/不同
    • 限制/不,相同,差别只在dp每格的枚举数量的个数
    • 限制,不同,就每个位置选拿or不拿
    • 求答案的种类
      • 返回所有方法=》路径,方法数,最少张数
      • 返回原数组对应的下标(没看到,//todo)
    • 流程都是先排序,分开面值表和对应的张数表
    • 优化/剪枝:只要返回最小数量时,用 [[窗口内最大值和最小值的更新结构]]找到最小的张数,省略了枚举。看体系班24课

[[货币凑面值-每张都认为不同]] #从左到右的尝试模型

  • 本质上就是 [[背包问题]],背包是在结果集中挑最大值的,凑面值是在结果集中挑结果为固定的值。
  • 区别:背包问题中的限制是针对全体,而不是针对某个值的限制
  • 题目1:
    • arr是货币数组,其中的值都是正数。再给定一个正数aim。
      即便是值相同的货币也认为每一张都是不同的,
      返回组成aim的方法数
      例如:arr = {1,1,1},aim = 2
      第0个和第1个能组成2,第1个和第2个能组成2,第0个和第2个能组成2
      一共就3种方法,所以返回3
    • 返回方法数的答案
  • 思路:index遍历每个位置选or不选都调递归
  • base case:超过aim return 0。index到达末尾,如果value=aim 返回1 否则返回0
  • 决策:p1=(index++,value)
    • p2=(index++,value+arr[index])
  • 返回:p1+p2
  • 升级版:返回所有可行的答案排列。
  • 区别:返回所有答案需要进行DFS,需要对path加入当前部分,调用函数,恢复现场
  • 思路:index遍历每个位置选or不选都调递归
  • base case:超过aim return -1,上层处理。index到达末尾,把当前组合加入ansList
  • 决策:
    • 不要index位置的数
      • 直接调用 index++,value
    • 把arr[i]加入pathList
    • 调用 index++,value+arr[i]
    • 在pathList中删除末尾

[[货币凑面值-限定面值,不限定每种面值的张数]] #从左到右的尝试模型

  • 题目:给定数组arr,arr中所有的值都为正数且不重复
    每个值代表一种面值的货币,每种面值的货币可以使用任意张
    再给定一个整数 aim,代表要找的钱数
    求组成 aim 的方法数

  • 思路:每个位置都把能使用的张数循环一轮,每次都调index++和相应的rest

  • 到每个位置都把rest=rest-arr[i]*当前最大张数,index++

  • 限制:rest-arr[i]*当前最大张数>=0

  • base case:index=len。(限制条件使rest不会为0,所以不用考虑rest)

  • 决策:根据rest求arr[i]*当前最大张数。for循环张数,调用index++,rest-arr[i]*当前张数

  • 代码

  • dp

  • 递归过程有枚举行为,改成dp严格表结构后用空间感解决

  • 在这里插入图片描述

  • 优化后
    在这里插入图片描述

[[货币凑面值-限定面值和每种面值的张数]]#从左到右的尝试模型

  • arr是货币数组,其中的值都是正数。再给定一个正数aim。
    每个值都认为是一张货币,
    认为值相同的货币没有任何不同,
    返回组成aim的方法数
    例如:arr = {1,2,1,1,2,1,2},aim = 4
    方法:1+1+1+1、1+1+2、2+2
    一共就3种方法,所以返回3
  • 问题一、一共有几种组成的方法
  • 问题二、最小需要几张

这篇关于货币凑面值类题目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/373612

相关文章

题目1254:N皇后问题

题目1254:N皇后问题 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: N皇后问题,即在N*N的方格棋盘内放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在同一斜线上。因为皇后可以直走,横走和斜走如下图)。 你的任务是,对于给定的N,求出有多少种合法的放置方法。输出N皇后问题所有不同的摆放情况个数。 输入

题目1380:lucky number

题目1380:lucky number 时间限制:3 秒 内存限制:3 兆 特殊判题:否 提交:2839 解决:300 题目描述: 每个人有自己的lucky number,小A也一样。不过他的lucky number定义不一样。他认为一个序列中某些数出现的次数为n的话,都是他的lucky number。但是,现在这个序列很大,他无法快速找到所有lucky number。既然

【408数据结构】散列 (哈希)知识点集合复习考点题目

苏泽  “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家    知识点 1. 散列查找 散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(

码蹄集部分题目(2024OJ赛9.4-9.8;线段树+树状数组)

1🐋🐋配对最小值(王者;树状数组) 时间限制:1秒 占用内存:64M 🐟题目思路 MT3065 配对最小值_哔哩哔哩_bilibili 🐟代码 #include<bits/stdc++.h> using namespace std;const int N=1e5+7;int a[N],b[N],c[N],n,q;struct QUERY{int l,r,id;}que

2024 年高教社杯全国大学生数学建模竞赛题目——2024 年高教社杯全国大学生数学建模竞赛题目的求解

2024 年高教社杯全国大学生数学建模竞赛题目 (请先阅读“ 全国大学生数学建模竞赛论文格式规范 ”) 2024 年高教社杯全国大学生数学建模竞赛题目 随着城市化进程的加快、机动车的快速普及, 以及人们活动范围的不断扩大,城市道 路交通拥堵问题日渐严重,即使在一些非中心城市,道路交通拥堵问题也成为影响地方经 济发展和百姓幸福感的一个“痛点”,是相关部门的棘手难题之一。 考虑一个拥有知名景区

力扣 739. 每日温度【经典单调栈题目】

1. 题目 理解题意: 1.1. 给一个温度集合, 要返回一个对应长度的结果集合, 这个结果集合里面的元素 i 是 当前 i 位置的元素的下一个更高温度的元素的位置和当前 i 位置的距离之差, 若是当前元素不存在下一个更高温度的元素, 则这个位置用0代替; 2. 思路 本题用单调栈来求解;单调栈就适用于来求当前元素左边或者右边第一个比当前元素大或者小的元素;【单调栈:让栈中的元素保持单调

msyql执行效率的问题以及常见基础面试题目

SQL被称为结构化查询语言(Structured Query Language )是操作和检索关系型数据库的标准语言 SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。 ※ 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。    Data Definition Language ※ 数据

2024 年高教社杯全国大学生数学建模竞赛题目【A/B/C/D/E题】完整论文+代码+结果

编辑 2024国赛A题参考论文https://download.csdn.net/download/qq_52590045/897183672024国赛D题参考论文https://download.csdn.net/download/qq_52590045/897158482024国赛E题参考论文https://download.c

2024 年高教社杯全国大学生数学建模竞赛题目【A/B/C/D/E题】完整论文+代码结果

2024国赛C题参考论文https://download.csdn.net/download/qq_52590045/89718370网盘链接形式,在里更新 2024国赛A题参考论文https://download.csdn.net/download/qq_52590045/89718367      网盘链接形式,在里更新

代码随想录Day 36|滑铁卢了,leetcode题目:1049.最后一块石头的重量、494.目标和、474.一和零

提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 动态规划一、题目题目一:1049.最后一块石头的重量II解题思路: 题目二:494.目标和动态规划 (二维dp数组)#动态规划 (一维dp数组) 题目三: 474.一和零解题思路: 总结 动态规划 有点难了,之前差的有点多,找时间补 一、题目 题目一:1049.最后一块石头的重量II leetcode题目链接