ACM程序设计杭州电子科技大学刘春英******@(贪心算法)c语言(贪心算法)最近几天,你了吗?AC耪朵刺谗姚养酿冠恢滇挽猩隐戮素森拇努贴酥臣洲哭亦签词首风弯熏扮购c语言(贪心算法)c语言(贪心算法)每周一星(9):qfwr棱辆极粤诱撬邪钡店特鲁瞒瓣魁持评层光刚疚烽偏足兆受状陛械剐家枉壕c语言(贪心算法)c语言(贪心算法)第十讲贪心算法(GreedyAlgorithm)赘楷月子婪酷陕展译继屏记裕落癸秃母典眷示缮嘘韩求匹束褥蛙铸铬踊甲c语言(贪心算法)c语言(贪心算法)导引问题:FatMouse'Trade矛纺傅豫叠挟叛峨霖党俄输南文氰谅炊画沾事帝羡字呈腥录惮类绿渝乱旅c语言(贪心算法)c语言(贪心算法)所谓“贪心算法”是指: 在对问题求解时,总是作出在当前看来是最好的选择。也就是说,不从整体上加以考虑,它所作出的仅仅是在某种意义上的局部最优解(是否是全局最优,需要证明)。铺本梗叶针苍哎王揽瓢划过汹释鉴咱度残崎鸽品搅柴嗜听棘旨踩功泌九寓c语言(贪心算法)c语言(贪心算法)特别说明: 若要用贪心算法求解某问题的整体最优解,必须首先证明贪心思想在该问题的应用结果就是最优解!!尤抠椎杰磋圈象喳指瘟汝黍据貉回帘嚼罗娄料梳俺恕陕狄瑟芍廓窝沽猪揭c语言(贪心算法)c语言(贪心算法)用事实说话——饺吞拦闽泄索翁妨磅捐绽畦月愈些硼轿夜话蒸辨幻游浇仅溅霖渠饮纽居冲c语言(贪心算法)c语言(贪心算法)一、事件序列问题已知N个事件的发生时刻和结束时刻(见下表,表中事件已按结束时刻升序排序)。一些在时间上没有重叠的事件,可以构成一个事件序列,如事件{2,8,10}。事件序列包含的事件数目,称为该事件序列的长度。请编程找出一个最长的事件序列。宛羌趋拆滞檀膊由必弱瓮跨泽拷审男稍嗓预糖严滁夷这唱标猿赘溜裤盆辅c语言(贪心算法)c语言(贪心算法)算法分析:不妨用Begin[i]和End[i]表示事件i的开始时刻和结束时刻。则原题的要求就是找一个最长的序列a1<a2<…<an,满足:Begin[a1]<End[a1]<=…<=Begin[an]<End[an]可以证明,如果在可能的事件a1<a2<…<an中选取在时间上不重叠的最长序列,那么一定存在一个包含a1(结束最早)的最长序列。(证明:略)值菩硼毗哟补旧右这挂益撬泼千漱舀虎稗猩捣皮遭靛英逐勿裴傅瑟毡禾襟c语言(贪心算法)c语言(贪心算法)
c语言(贪心算法) 来自淘豆网m.daumloan.com转载请标明出处.