1006

LYF 签到

1003

题意:

5组5s。平面上n5000个点,在t秒时形成一个半径为0.5t的圆,问在几秒时所有圆连通。

错解1:

二分一个时间,并查集判断是否连通。复杂度O(n^2lgn)

错解2:

kruskal堆维护。复杂度O(n^2lgn)

错解3:

kruskal sort边。复杂度O(n^2lgn)

正解:

prim。虽然这个算法平常用不到,但是对于稠密图它能跑得比kruskal少一个log。prim在竞赛中基本只有这一个使用场景。虽然斐波那契堆优化prim的算法复杂度明显优于kruskal,但是这玩意不会考(谁会准备斐波那契堆板子?),而且斐波那契堆的常数使得它很多时候确实比kruskal慢。

这个体现了我们的一个问题:忽视一些平常用不到的基础算法。

1009

WD AC自动机板子题

1004

WD 类似吉司机线段树

1008

ZRC 圆交

问题在于四舍五入保留六位小数。事实上默认输出就是四舍五入,但是我却用了printf(“0.%d\n”,(int)round(ans*1000000))来输出。前导零没考虑。

改成”0.%06d\n”即可。