- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
03贪心算法
* * 第三讲 贪心算法(Greedy Algorithm) * * 导引问题:FatMouse‘ Trade(1781) * * 所谓“贪心算法”是指: 在对问题求解时,总是作出在当前看来是最好的选择。也就是说,不从整体上加以考虑,它所作出的仅仅是在某种意义上的局部最优解(是否是全局最优,需要证明)。 * * 特别说明: 若要用贪心算法求解某问题的整体最优解,必须首先证明贪心思想在该问题的应用结果就是最优解!! * * 用事实说话—— * * 一、事件序列问题 已知N个事件的发生时刻和结束时刻(见下表,表中事件已按结束时刻升序排序)。一些在时间上没有重叠的事件,可以构成一个事件序列,如事件 {2,8,10}。事件序列包含的事件数目,称为该事件序列的长度。请编程找出一个最长的事件序列。 事件编号 0 1 2 3 4 5 6 7 8 9 10 11 发生时刻 1 3 0 3 2 5 6 4 10 8 15 15 结束时刻 3 4 7 8 9 10 12 14 15 18 19 20 * * 算法分析: 不妨用Begin[i]和End[i]表示事件i的开始时刻和结束时刻。则原题的要求就是找一个最长的序列a1a2…an,满足: Begin[a1]End[a1]=…= Begin[an]End[an] 可以证明,如果在可能的事件a1a2…an中选取在时间上不重叠的最长序列,那么一定存在一个包含a1(结束最早)的最长序列。 (证明:略) * * 思考题 1782 今年暑假不AC * * 二、区间覆盖问题 用i来表示x轴上坐标为[i-1,i]的区间(长度为1),并给出M(1=M=200)个不同的整数,表示M个这样的区间。现在让你画几条线段覆盖住所有的区间,条件是:每条线段可以任意长,但是要求所画线段之和最小,并且线段的数目不超过N(1=N=50)。 例如:M=5个整数1、3、4、8和11表示区间,要求所用线段不超过N=3条 0 1 2 3 4 5 6 7 8 9 10 11 * * 算法分析: 如果N=M,那么显然用M条长度为1的线段可以覆盖住所有的区间,所求的线段总长为M。 如果N=1,那么显然所需线段总长为:… 如果N=2,相当于N=1的情况下从某处断开(从哪儿断开呢?)。 如果N=k呢? * * 三、JLNUOJ_1783 Moving Tables Sample Input 3 4 10 20 30 40 50 60 70 80 2 1 3 2 200 3 10 100 20 80 30 50 Sample Output 10 20 30 * * 算法分析: 1、如果没有交叉,总时间应该是多少? 2、影响搬运时间的因素是什么? 3、如果每趟处理都包含最大重叠,处理后的效果是什么? 4、得出什么结论? * * 贪心算法的基本步骤 1、从问题的某个初始解出发。 2、采用循环语句,当可以向求解目标前进一步时,就根据局部最优策略,得到一个部分解,缩小问题的范围或规模。 3、将所有部分解综合起来,得到问题的最终解。 * * 思考:田忌赛马(1745) 92 83 71 74 87 95 -200 -200 -200 92 83 71 74 87 95 -200 +200 +200 * * Case 1: King: 200 180 160 Tianji: 190 170 150 * * Case 2: King: 200 180 160 Tianji: 180 170 150 * * Case 3: King: 200 180 160 Tianji: 180 155 150 * * 总体的思路是什么? 本题小结—— 算法: 一:如果田忌的最快的马比齐威王最快的马快,则用它来比,先赢一场; 二:如果田忌的最慢的马比齐威王最慢的马快,也用它来比,先赢一场; 三:如果不同于前两种情况的任何一种情况都是用田忌的最慢的马来和齐威王最快的马比;先输一场,这叫懂得取舍~~ * * * * 提醒: 很多贪心类型的题目都象本题一样,不是最朴素的贪心,而是需要做一些变化,对于我们,关键是找到贪心的本质! * * Kruskal 在1956年提出了1个最小生成树算法,它的思路很容易理解。设G=(V,E)是一个连通带权图,V={1,2,…,n}。将图中的边按其权值由小到大排序,然后作如下的贪婪选择,由小到大顺序选取各条边,若选某边后不形成回路,则将其
您可能关注的文档
- 公文写作(企业)概要.ppt
- 公文筐测验(案例题解示范)007概要.ppt
- 公文文体与用语概要.ppt
- 你所不知道的授课技巧讲述.ppt
- 深肌松改善手术条件概要.ppt
- 公开课平均数概要.ppt
- 公民健康素养66条讲座讲稿概要.doc
- 你家的阳台这样装等于多了一间房!讲述.docx
- 深圳2、5号线CBTC-车载概要.ppt
- 公民教育及其文化使命探究概要.doc
- 2024-2025学年人教版小学数学四年级下册教学计划及进度表.docx
- 2024-2025学年北师大版小学数学二年级下册教学计划及进度表.docx
- 2024-2025学年人教版小学数学五年级下册教学计划及进度表.docx
- 2024-2025学年人教大同版(2024)小学英语三年级下册教学计划.docx
- 2024-2025学年人教精通版(三起)(2024)小学英语三年级下册教学计划.docx
- 2024-2025学年统编版初中道德与法治八年级下册教学计划及进度表.docx
- 2024-2025学年统编版(2024)初中道德与法治七年级下册教学计划及进度表.docx
- 2023-2024学年上海黄埔区中考二模综合测试(物理部分)试卷及答案.pdf
- 2024-2025学年外研版(三起)(2024)小学英语三年级下册教学计划及进度表.docx
- 2025届北京市北京第四中学高三冲刺模拟数学试卷含解析.doc
文档评论(0)