贪心算法090420.ppt

上传人:sccc 文档编号:5769480 上传时间:2023-08-18 格式:PPT 页数:31 大小:550.54KB
返回 下载 相关 举报
贪心算法090420.ppt_第1页
第1页 / 共31页
贪心算法090420.ppt_第2页
第2页 / 共31页
贪心算法090420.ppt_第3页
第3页 / 共31页
贪心算法090420.ppt_第4页
第4页 / 共31页
贪心算法090420.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《贪心算法090420.ppt》由会员分享,可在线阅读,更多相关《贪心算法090420.ppt(31页珍藏版)》请在三一办公上搜索。

1、ACM程序设计,杭州电子科技大学 刘春英,2023/8/18,2,这学期,,你 了吗?,练习,2023/8/18,3,每周一星(8):,qzx,2023/8/18,4,第九讲,贪心算法(Greedy Algorithm),2023/8/18,5,导引问题:FatMouse Trade,2023/8/18,6,所谓“贪心算法”是指:,在对问题求解时,总是作出在当前看来是最好的选择。也就是说,不从整体上加以考虑,它所作出的仅仅是在某种意义上的局部最优解(是否是全局最优,需要证明)。,2023/8/18,7,特别说明:,若要用贪心算法求解某问题的整体最优解,必须首先证明贪心思想在该问题的应用结果就是

2、最优解!,2023/8/18,8,用事实说话,2023/8/18,9,一、事件序列问题,已知N个事件的发生时刻和结束时刻(见下表,表中事件已按结束时刻升序排序)。一些在时间上没有重叠的事件,可以构成一个事件序列,如事件2,8,10。事件序列包含的事件数目,称为该事件序列的长度。请编程找出一个最长的事件序列。,2023/8/18,10,算法分析:,不妨用Begini和Endi表示事件i的开始时刻和结束时刻。则原题的要求就是找一个最长的序列a1a2an,满足:Begina1Enda1=BeginanEndan,可以证明,如果在可能的事件a1a2an中选取在时间上不重叠的最长序列,那么一定存在一个包

3、含a1(结束最早)的最长序列。(证明:略),2023/8/18,11,思考:,请谈谈自己的解题思路,2023/8/18,12,思考题,2037 今年暑假不AC,2023/8/18,13,二、区间覆盖问题,用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,2023/8/18,14,算

4、法分析:,如果N=M,那么显然用M条长度为1的线段可以覆盖住所有的区间,所求的线段总长为M。如果N=1,那么显然所需线段总长为:如果N=2,相当于N=1的情况下从某处断开(从哪儿断开呢?)。如果N=k呢?,2023/8/18,15,三、HDOJ_1050 Moving Tables,Sample Input3 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,2023/8/18,16,算法分析:,1、如果没有交叉,总时间应该是多少?2、影响搬运时间的因素是什么?3、如果每趟处理都包

5、含最大重叠,处理后的效果是什么?4、得出什么结论?,2023/8/18,17,附:参考源码(HDOJ-1050),#include using namespace std;int main()int t,i,j,N,P200;int s,d,temp,k,min;cint;for(i=0;iN;for(j=0;jsd;s=(s-1)/2;d=(d-1)/2;,if(sd)temp=s;s=d;d=temp;for(k=s;kmin)min=Pj;coutmin*10endl;return 0;,2023/8/18,18,贪心算法的基本步骤,1、从问题的某个初始解出发。2、采用循环语句,当可以向

6、求解目标前进一步时,就根据局部最优策略,得到一个部分解,缩小问题的范围或规模。3、将所有部分解综合起来,得到问题的最终解。,2023/8/18,19,贪心算法都很简单吗?,看一道难一些的。(2004年上海赛区:正式赛是简单题),2023/8/18,20,ACM-ICPC Asia Regional,2004,Shanghai,Tian JiThe Horse Racing,2023/8/18,21,示意图:,2023/8/18,22,谈谈自己的想法吧,2023/8/18,23,Case 1:,King:200 180 160Tianji:190 170 150,2023/8/18,24,Cas

7、e 2:,King:200 180 160Tianji:180 170 150,2023/8/18,25,Case 3:,King:200 180 160Tianji:180 155 150,2023/8/18,26,总体的思路是什么?,2023/8/18,27,提醒:,很多贪心类型的题目都象本题一样,不是最朴素的贪心,而是需要做一些变化,对于我们,关键是找到贪心的本质!,2023/8/18,28,最后一个思考题,Any questions?,2023/8/18,30,相关练习,另外还有1203、1204、12391579、1730、2285,DIY:ACM程序设计在线作业(9)贪心练习,2023/8/18,31,Welcome to HDOJ,Thank You,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号