- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例4、旅行家预算(NOIP1999 高中组第3题 ) 【问题描述】一个旅行家想驾驶汽车以最少的费用,从一个城市到另一个城市(假设出发时邮箱是空的)。给定两城市之间的距离Dic1,汽车邮箱的容量C(以升为单位),每升汽油能行驶的距离为Dic2,出发时每升汽油的价格为P。沿途有n(1≤n ≤100 )个加油站,油站i离出发点的距离为di,该油站每升汽油的价格为pi(i=1,2,…,n).请编程输出完成任务最小的费用,计算结果四舍五入至小数点后两位,如果无法到达目的地,则输出“No solution”。 输入: 输入文件名为oil.in,共n+1行,第1行为:Dic1 C Dic2 P n,以下n行,其中第i+1( 1≤ i ≤ n)行的数据均有3个,分别为:油站号i,该油站距出发点的距离di,该油站每升汽油的价格Pi。每个数据之间用一个空格隔开。 输出:输出文件oil.out,仅一行,表示最少费用。 【样例输入】275.6 11.9 27.4 2.8 2 1 102.0 2.9 2 220.0 2.2 【样例输出】26.95 分析: 题目要求从起点到终点的最小花费,又给了加油站的位置与油费,明显贪心法,即让花费一直最小。 ? 贪心思路: ? 1.如果在能到达的加油站中,油费有比当前加油站便宜的,就到一个距离最近且油费比当前加油站便宜的加油站去,在当前加油站加上刚好能到那个加油站的油,使到达加油站时油用光。 ? 2.如果在能到达的加油站中,油费没有比当前加油站便宜的,那就在此加油站加满油,然后开到能到达的加油站中油费最小的加油站去。 ? 一直循环下去,当能到达终点了,并且后面的站中油费没有更小的了,这就是最终答案。 ??当找不到加油站了,即无解 分析: 设出发城市为0站,目的城市为n+1站。汽车目前在i站 (0≤ i ≤ n),应加多少油,驶往哪一站可使得整个行程的花费最少? 【贪心策略】下一个目的站的单位油价尽可能低于i站,若所有可达油站的单位油价都高于i站的话,则下一个目的站的单位油价亦应该尽可能的便宜。在i站所有可到的油站j(dj-di ≤C*Dic2,i+1≤j≤n+1)中,计算以下油站号: min1:单位油价低于i站且距离最近(以最小代价到达)的一个油站。 Min2:在由i站直接可达的所有油站中,单位油价最便宜(但高于i站)的一个油站。 ? 贪心法 概念 贪心法是沿着一种固定的策略一直走下去的算法 与动态规划和搜索的区别是,动态规划和搜索在一个阶段都会考虑所有可能出现的状态,而贪心只需要知道哪个状态是最优 可以用贪心的条件是满足每步都最优,总结果也最优 例1、删数问题 【问题描述】键盘键入一个高精度的正整数n(≤240位),去掉其中任意s个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。 输入:n s 输出:最后剩下的最小数 【样例输入 】 178543 4 【样例输出】 13 【问题分析】 如何决定哪s位被删除呢?是不是最大的s个数字? 贪心策略: 每一步总是选择一个使剩下的数最小的数字删去,即按高位到低位的顺序搜索,若各位数字递增,则删除最后一个数字;否则,删除第一个递减区的首字符。然后回到串首,按上述规则再删下一个数字。重复以上过程s次为止。 如何寻找递减区间首字符? 例2、取数游戏 【问题描述】给出2n(≤100)个自然数(数小于等于30000)。游戏双方分别为A方(计算机方)和B方(对弈的人)。只允许从数列两头取数,A先取,然后双方依次轮流取数。取完时,谁取得的数字总和最大为取胜方;若双方和相等,属于A胜。试问A方可否有必胜的策略? 输入:键盘输入n及2n个自然数 输出:共3n+2行,前3n行为游戏经过,每3行分别为A方所取的数和B方所取的数,及B方取数前的提示(L/R—左端或右端)。最后2行分别为A方所取得数的和与B方所取得数的和。 【问题分析】 n=4,自然数列:7 9 3 6 4 2 5 3 A每次取数列两头较大的那个数 游戏者:每次取数列两头较大的那个数 A:7+3+4+5=19 B:9+6+2+3=20 A方输 【问题分析】 n=4,自然数列:7 9 3 6 4 2 5 3 若A取走偶位置的数,则剩下两端数都处于奇位置; 若A取走奇位置的数,则剩下两端数都处于偶位置; 既无论B如何取法,A方既可以取走奇位置的所有数,也可以取走偶位置的所有数。 贪心策略: 让A方取走“数和较大的奇(或
您可能关注的文档
最近下载
- 三甲医院必备医疗设备清单大全.doc VIP
- 1_MSDS_柴油-GB 30000 S(化学品安全技术说明书).pdf VIP
- 职业学校建设项目投资估算方案(参考范文).docx
- 2024-2025学年人教版八年级上册历史期末综合训练(含答案).docx VIP
- 《马克思主义基本原理》教案 专题六 劳动价值论.doc VIP
- 建筑施工承插型盘扣式钢管脚手架安全技术标准2021.pdf VIP
- 2025年事业单位考试(医疗卫生类E类)综合应用能力试卷及答案指导.docx VIP
- 人教部编版部编版七下《阿长与山海经》优秀课件(公开课一等奖).pptx VIP
- 食品营养与健康绪论.ppt VIP
- 贫血的中医治疗.pptx VIP
文档评论(0)