#5108. Problem 2. Mountains
0
Problem 2. Mountains
Problem 2. Mountains
USACO 2022 December Contest, Gold
注意:本题的时间限制为 5 秒,通常限制的 2.5 倍。内存限制是通常限制的两倍。
沿着 Farmer John 的农场边缘有 ()座排成一行等间隔分布的山。这些山可以用一个高度数组 表示。对于山 ,如果没有一座山严格高于连接山 和 山顶的视线,则可以看到山 。形式化地说,对于两座山 ,如果不存在 使得 并且 高于联结 和 的线段,则这两座山之间互相可以看到对方。给定 ()次更新操作,每次更新增加一座山的高度。求每次更新后可以互相看到的山的无序对数。
输入格式(从终端 / 标准输入读入):
输入的第一行包含 。
第 行包含 个高度 (对每一个 ,有 )。
第 行包含 。
第 到 行每行包含 ,(,),其中 为山的编号, 是山增加的高度。输入保证这座山更新后的高度不超过 。
输出格式(输出至终端 / 标准输出):
输出 行,包含每次更新后可以互相看到的山的无序对数。
输入样例:
5 2 4 3 1 5 3 4 3 1 3 3 2
输出样例:
7 10 7
初始时,以下的山之间可以互相看到:,,,,,,共 对。
第一次更新后,山 的高度为 ,这不会阻挡现有的可见性,但使得山 现在可以看到山 ,从而使得答案变为 。
第二次更新后,山 的高度为 ,这不会阻挡现有的可见性,但使得山 现在可以看到山 , 和 ,从而使得答案变为 。
第三次更新后,山 的高度为 ,阻挡了山 看到山 ,阻挡了山 看到山 和 ,同时由于该山本就可以看到其他所有山,所以并没有使得该山看到更多的山,从而使得答案变为 。
测试点性质: 测试点 2-5 满足 。 测试点 6-11 满足 。 测试点 12-21 没有额外性质。
供题:Joe Li,Larry Xing