exercise2ACM程序.doc

第二次作业(计1202蒋信厚) 贪心算法: 在对问题求解时,总是作出在当前看来是最好的选择。也就是说,不从整体上加以考虑,它所作出的仅仅是在某种意义上的局部最优解(是否是全局最优,需要证明)。贪心算法的基本步骤包括: 从问题的某个初始解出发。 2.采用循环语句,当可以向求解目标前进一步时,就根据局部最优策略,得到一个部分解,缩小问题的范围或规模。 将所有部分解综合起来,得到问题的最终解。 时间序列问题: 1、已知N个事件的发生时刻和结束时刻(见下表,表中事件已按结束时刻升序排序)。一些在时间上没有重叠的事件,可以构成一个事件序列,如事件 2,8,10 。事件序列包含的事件数目,称为该事件序列的长度。请编程找出一个最长的事件序列。 输入:第一行为事件的个数N,以下共输入N行,每一行都有两个整数构成,第一个整数为事件开始时间,第二个整数为事件结束时间,时间的编号为其所在的行数 从0开始计数 。 输出:输出一个最长的时间序列 输入示例: 12 1 3 3 4 0 7 3 8 2 9 5 10 6 12 4 14 10 15 8 18 15 19 15 20 输出示例: 0 1 5 8 10 解:用Begin[i]和End[i]表示事件i的开始时刻和结束时刻。则原题的要求就是找一个最长的序列a1 a2 … an,满足:Begin[a1] End[a1]

文档评论(0)

1亿VIP精品文档

相关文档