题解:P8777 [蓝桥杯 2022 省 A] 扫描游戏
I_AM_CIMOTA · · 题解
这里给出一个
首先,对所有点按照到原点的距离
每次取出堆顶,显然堆顶的点就是距离木棒当前位置最近的点。我们把木棒移到这个位置,把
不难发现,最终没进过堆的点就是碰不到的点,而每个点作为堆顶被取出的顺序就是木棒碰到这些点的顺序。
现在还有个问题,当木棒的位置变化时,堆中的排序规则也变了,怎么能保证堆中的元素是按照我们想要的顺序排序的呢?
证明:因为移动后到达的是离木棒当前位置最近的点,所以当木棒的位置移动到下一个位置时,堆中原有元素的顺序是不变的,只需要按照新规则把新元素插入堆中就是正确的了。
于是,我们发现