23
IOI2010 国国国国国国国国国国国—— 国国国国国国国 国国国 国国国

IOI2010 国家集训队论文问题解析 ——

  • Upload
    dinh

  • View
    69

  • Download
    0

Embed Size (px)

DESCRIPTION

IOI2010 国家集训队论文问题解析 ——. 大灾变. 河南省实验中学 郭家宝. 问题回顾. 有一座山脉,要求在山脉上建立一座瞭望塔,在山脉上空建立一个浮空岛,使得站在瞭望塔的顶端和浮空岛上,可以看到整个山脉。 瞭望塔塔身高度应尽量小,浮空岛的绝对海拔应尽量低,并且在满足上述条件的情况下横坐标尽量小。请你求出瞭望塔和浮空岛的坐标。. 问题回顾. 样例如下图所示. 瞭望塔. 浮空岛. 海平面. 初步分析. 题目要求看到整个山脉,就是看到所有的山坡。 首先考虑绝对高度最低点。 从一个较低高度开始垂直上升,直到看见整个山脉。. 欲窮千里目 更上一層樓. - PowerPoint PPT Presentation

Citation preview

Page 1: IOI2010 国家集训队论文问题解析 ——

IOI2010 国家集训队论文问题解析——

河南省实验中学 郭家宝

大灾变

Page 2: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

问题回顾• 有一座山脉,要求在山脉上建立一座瞭望塔,在山脉上空建立一个浮空岛,使得站在瞭望塔的顶端和浮空岛上,可以看到整个山脉。• 瞭望塔塔身高度应尽量小,浮空岛的绝对海拔应尽量低,并且在满足上述条件的情况下横坐标尽量小。请你求出瞭望塔和浮空岛的坐标。

Page 3: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

问题回顾• 样例如下图所示

瞭望塔

海平面

浮空岛

Page 4: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

初步分析• 题目要求看到整个山脉,就是看到所有的山坡。• 首先考虑绝对高度最低点。• 从一个较低高度开始垂直上升,直到看见整个山脉。欲窮千里目更上一層樓

Page 5: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

初步分析• 站得越高,看得越远。• 从低处向高处走,可视范围增加。• 单调性。

行遠必自邇登高必自卑

Page 6: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

算法甲• 二分枚举高度,判断当前高度上是否可以一览全貌。• 如果存在,降低高度,如果不存在,升高高度。• 如何判断?

—— 登高必自卑

Page 7: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

算法甲

海平面

可行区域试探高度

—— 登高必自卑

Page 8: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

算法甲分析• 时间复杂度 O(NlogE) 。• 这种方法求出的位置,是绝对高度最小的位置。可以求相对高度最小的位置吗?

—— 登高必自卑

Page 9: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

再次分析• 猜想:瞭望塔一定建在山峰上。• 反例:

Page 10: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

再次分析• 猜想:瞭望塔一定在浮空岛周围的同一山峰的山坡上(距离不远)。• 反例: 瞭望塔

浮空岛

Page 11: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

重新思考• 一个山坡只能在山坡线的一侧被看到。• 所有山坡可视区域的公共部分,就是整个山脉的可视区域。• 接下来只需在可视区域内查找相对高度和绝对高度的最小的点了。不識廬山眞面目祇緣身在此山中

Page 12: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

算法乙• 求所有半平面的交集。• 可视区域就是“上方未封口的凸多边形”,抽象为分段函数。• 扫描可视区域,求出相对高度和绝对高度最小的位置。

—— 一覽眾山小

會當淩絕頂一覽眾山小

Page 13: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

算法乙

海平面

可视区域

—— 一覽眾山小

Page 14: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

算法乙分析• 算法瓶颈:求半平面交。• 时间复杂度: O(N^2) 或 O(NlogN) 。• 实现起来复杂。

还可以改进吗?

—— 一覽眾山小

Page 15: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

算法丙• 将直线按斜率排序,依次插入。• 每次求交点,判断新插入的直线是否更优。

刪繁就簡三秋樹領異標新二月花

——刪繁就簡三秋樹

Page 16: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

算法丙p1

p2

p2.x > p1.x

——刪繁就簡三秋樹

Page 17: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

算法丙

p1

p2

p2.x <= p1.x

——刪繁就簡三秋樹

Page 18: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

算法丙 ——刪繁就簡三秋樹

Page 19: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

算法丙

海平面

可视区域

——刪繁就簡三秋樹

Page 20: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

算法丙分析• 时间复杂度: O(NlogN)• 特殊问题用特殊方法解决。

——刪繁就簡三秋樹

恢恢乎其於遊刃必有餘地矣

Page 21: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

总结• 优化无止境,有 O(N) 的算法嗎?• 思考无止境,还有别的思路吗?• 学习无止境,还能学到别的知识吗?

問渠那得清如許爲有源頭活水來

——爲有源頭活水來

Page 22: IOI2010 国家集训队论文问题解析 ——

http://www.byvoid.com

IOI2010 国家集训队论文 郭家宝

试题考查点• 计算几何基本知识• 二分思想• 半平面交• 单调性的应用• 分段一次函数求最值

Page 23: IOI2010 国家集训队论文问题解析 ——

郭家宝感谢大家

byvoid1[at]gmail.com

路曼曼其修遠兮吾將上下而求索