Treap
- 格式:pptx
- 大小:136.58 KB
- 文档页数:14


信息学奥赛⼀本通(提⾼组)⼀、贪⼼算法选择不相交区间问题:给定n个开区间,选择尽量多个区间,是得这些区间两两没有公共点。
(例:活动安排) 按照结束时间由⼩到⼤的顺序排列,依次考虑各个活动,如果没有和已经选择的活动冲突,就选;否则就不选。
区间选点问题:给定n个闭区间,在数轴上选尽量少的点,是得每个区间内都⾄少有⼀个点(不同区间内含的点可以是同⼀个)。
(例:种树) ⾸先按照区间的结束位置从⼩到⼤排列。
然后在区间中进⾏选择:对于当前区间,若集合中的点不能覆盖它,则将区间末尾的数加⼊集合。
贪⼼策略:取最后⼀个。
区间覆盖问题:给定n隔壁区间,选择尽量少的区间覆盖⼀条指定的线段区间。
(例:喷⽔装置) 将所有区间按照左端点由⼩到⼤排序,依次处理每个区间。
每次选择覆盖点s的区间中右端点坐标中最⼤的⼀个,并将s更新为该区间的右端点坐标,直到选择的区间包含t。
贪⼼策略:在某时刻的s,找出⼀个满⾜a[i]<=s的b[i]最⼤值即可。
流⽔作业调度问题:n作业,两机器,先a后b,求总时间最短。
(例:加⼯⽣产调度) 直观:让a没有空闲,让b空的少 Johnson算法:对于a<b的集合,按s⾮减序排列;对于a>=b的集合,按照b⾮升序排列带期限和罚款的单位时间任务调度:n任务,每个都能在单位时间内完成,每个都有对应的完成期限及完成不了的罚款数额,确定执⾏顺序使罚款最少。
(例:智⼒⼤冲浪) 按照罚款数额由⼤到⼩排序,然后依次进⾏安排。
安排规则为:使处理当前任务的时间在既在期限之内,⼜尽量靠后,如果都已经排满,则放弃处理并扔在最后.⼆、⼆分(单调性)与三分(单峰性)⼆分的边界问题:⼆分常见模型:⼆分答案(将最优化问题转为判定性问题),⼆分查找(求解分界点),代替三分(⼆分导函数求极值,定义域通常定为整数域)。
三分:任取两点判断好坏不断缩⼩区间。
三,搜索dfs的优化技巧:优化搜索顺序(对象),排除等效冗余,可⾏性剪枝(上下界剪枝),最优性剪枝,记忆化。