题解:P5193 [TJOI2012] 炸弹

· · 题解

我们充分发扬人类智慧:

将所有点全部绕原点旋转同一个角度,然后按 x+y 排序。

根据数学直觉,在随机旋转后,答案中的两个点在数组中肯定不会离得太远。

所以我们只取每个点前后 500 个点判断能否产生答案,用并查集维护连通性即可。

这样速度快得飞起,在 n = 10^5 时都能 250\text{ms} 内卡过。