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”即可。