社区
数据结构与算法
帖子详情
求纸币数目最少问题。。
dingyaguang117
2010-03-17 05:38:53
一种新的货币系统:由n种不同面值的纸币组成,各种面值的纸币可以多张叠加、相互搭配使用
测试1--K元面值,求要组成1--K元,分别要使用至少多少张纸币。。
例如:n=3 分别为1 2 5元
k=10
则分别求
1=1 1张
2=2 1张
3=1+2 2张
4=2+2 ..
5=2+2+1 3张
6=2+2+2 ..
...
注意,贪心的结果可能是错的。。
...全文
422
14
打赏
收藏
求纸币数目最少问题。。
一种新的货币系统:由n种不同面值的纸币组成,各种面值的纸币可以多张叠加、相互搭配使用 测试1--K元面值,求要组成1--K元,分别要使用至少多少张纸币。。 例如:n=3 分别为1 2 5元 k=10 则分别求 1=1 1张 2=2 1张 3=1+2 2张 4=2+2 .. 5=2+2+1 3张 6=2+2+2 .. ... 注意,贪心的结果可能是错的。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
黄舒颖 咸丫蛋
2010-03-18
打赏
举报
回复
从前往后走
1 2 5
是吧,
先把 1 2 5 给填了。
再填 3,4,6,7,10
再填 8、9
这样就好了。
hellodota121
2010-03-18
打赏
举报
回复
[Quote=引用 10 楼 leontown 的回复:]
cool!
DP。
另外,编程之美上的一节“买书问题”也有类似的DP方法。。。
[/Quote]
顶
LeonTown
2010-03-18
打赏
举报
回复
cool!
DP。
另外,编程之美上的一节“买书问题”也有类似的DP方法。。。
FancyMouse
2010-03-18
打赏
举报
回复
对于一个硬币系统,贪心是否一直是最优解,这个存在强多项式的。没记错的话O(n^3)
当然和lz的问题是不一样的。
michael122
2010-03-18
打赏
举报
回复
dp了,复杂度还好,O(n*k)
dingyaguang117
2010-03-18
打赏
举报
回复
[Quote=引用 6 楼 litaoye 的回复:]
基本上就是这样,上面给的是状态转移方程,其实基本上用贪心是可以的,bfs和dp只要计算一个很小的范围就可以了,剩下的靠贪心。
[/Quote]
我也做了贪心 可是贪心有时候是错的 怎么办呢
黄舒颖 咸丫蛋
2010-03-18
打赏
举报
回复
嗯,就是BFS
[Quote=引用 12 楼 vshuang 的回复:]
从前往后走
1 2 5
是吧,
先把 1 2 5 给填了。
再填 3,4,6,7,10
再填 8、9
这样就好了。
[/Quote]
duguyue200
2010-03-17
打赏
举报
回复
饿~对价格DP
但是数据大了,空间开销是不是也很大啊,而且如果是稀疏的更加郁闷
绿色夹克衫
2010-03-17
打赏
举报
回复
基本上就是这样,上面给的是状态转移方程,其实基本上用贪心是可以的,bfs和dp只要计算一个很小的范围就可以了,剩下的靠贪心。
[Quote=引用 5 楼 qq120848369 的回复:]
f(100) = min(f(99),f(98),f(95),f(90),f(80)) + 1
f(value)表示value价值时最少张数,每次可以选那么几种,选一种需要最少的+1就是现在的张数,DP记录一下。是这样么。
[/Quote]
qq120848369
2010-03-17
打赏
举报
回复
f(100) = min(f(99),f(98),f(95),f(90),f(80)) + 1
f(value)表示value价值时最少张数,每次可以选那么几种,选一种需要最少的+1就是现在的张数,DP记录一下。是这样么。
绿色夹克衫
2010-03-17
打赏
举报
回复
BFS或DP都可以解
1 2 5 10 20
f(100) = min(f(99),f(98),f(95),f(90),f(80)) + 1
绿色夹克衫
2010-03-17
打赏
举报
回复
跟这个问题差不多,LZ看看吧。
http://topic.csdn.net/u/20100302/16/01c2a095-c7af-43a3-877b-cd75267d7baa.html
yayang17
2010-03-17
打赏
举报
回复
表述不清。
dingyaguang117
2010-03-17
打赏
举报
回复
不知道这道题的意思是整体的动态规划,还是每个数 单独动态规划
贪心算法设计技术的应用
注意:闽工院计算机系07届请勿下载,以免被老师发现 1.利用贪心策略解决背包
问题
。现有载重为M公斤的背包和n种货物。第i种货物的重量为Wi,它的总价值为Pi,假定M、Wi、Pi均为整数。设计程序给出装货方法,使装入背包的货物总价值达到最大。 2.设计实现超市收银程序,假设顾客在超市购买各种商品,来到收银台结账,收银员具有面值为100,20,10,5和1元的
纸币
和各种面值为5角、2角、1角的硬币。设计程序计算顾客各种所买商品的钱数,并根据顾客所付的钱数输出零钱的
数目
及要找的各种货币的
数目
。 3.利用贪心策略解决磁带存储
问题
。有n个程序需要存储在磁带上,它们的长度分别是L1,L2,…,Ln,它们使用的频率分别为F1,F2,…,Fn,
求
程序在磁带上最佳存储顺序,使平均检索时间
最少
。
Python贪心算法实例小结
本文实例讲述了Python贪心算法。分享给大家供大家参考,具体如下: 1. 找零钱
问题
:假设只有 1 分、 2 分、五分、 1 角、二角、 五角、 1元的硬币。在超市结账 时,如果 需要找零钱, 收银员希望将
最少
的硬币数找给顾客。那么,给定 需要找的零钱
数目
,如何
求
得
最少
的硬币数呢? # -*- coding:utf-8 -*- def main(): d = [0.01,0.02,0.05,0.1,0.2,0.5,1.0] # 存储每种硬币面值 d_num = [] # 存储每种硬币的数量 s = 0 # 拥有的零钱总和 temp = raw_input('请输入每种零
java
最少
需要多少张
纸币
_
最少
钱币数(凑硬币)详解-2-动态规划算法(初窥)-编程练习题(100)...
目录这篇使用动态规划算法来解决这个
问题
,借这篇博客初窥动态规划算法。
最少
钱币数
问题
也可以看作多重背包
问题
。那么什么是动态规划算法?动态规划(dynamic programming,DP)是运筹学的一个分支,是
求
解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision proces...
最少
钱币数(动态规划)
最少
钱币数
问题
也可以看作多重背包
问题
。 此
问题
递推公式(也可以叫做动态转移方程):(注:money[i]表示可以使用的
纸币
的面额组成的数组,dp[m]表示要凑m元至少需要多少张
纸币
。) dp[m] = min( dp[ m-money[i] ]+1 , dp[m] ) 我们先了解一下DP(Dynamic Programing)的基本原理:首先,找到某个状态的最优解,然后在它的帮助下,找到下一个状态的最优解。不明白这个概念没关系,我们以下面的例子为例来分析一下——如果我们有4种面值分别为1元,3元,5元
⽤户去输⼊⼀个⼈民币⾦额,然后程序会计算如何去⽤20元
纸币
,10元
纸币
,5元
纸币
和⼀元
纸币
去表⽰这个⼈民币⾦额。要
求
使⽤最⼩数⽬的
纸币
。
#include<stdio.h> int main() {int a,b,c,d,e; printf("请输入一个人民币金额\n"); scanf("%d",&a); b=a/20; c=(a-b*20)/10; d=((a-b*20)-c*10)/5; e=(((a-b*20)-c*10)-5*d)/1; {printf("20元
纸币
数目
:%d\n",b); printf("10元
纸币
数目
:%d\n",c); printf("5元
纸币
数目
:%d\n",d);
数据结构与算法
33,025
社区成员
35,334
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章