开场把三题都看了一遍,A不太会,B大概有什么结论,C是个神仙交互。
先开A,发现没看到 (sum f^2(k) le 4*10^5),想了想就会了,写完大概1h。
猜了猜B的结论,大概是x,y联通,且所在联通块有度数大于二的点或有环,写了个暴力,发现是对的。
然后就想到可以直接可持久化并查集感觉优势巨大,以为是 (qlog^2n) 的,就去写了,写完已经11点多了,才发现是3只log的。
猜了猜应该要个 (operatorname{kruskal}) 重构树,可惜还是不会。
冷静分析下瓶颈在于找 (fa),这可以路径压缩?
改了改多过了几个点,但分没多,此时12点多了,感觉要打铁了。
去上个厕所,发现只要每次合并把编号小的合并到编号大的上,然后在 (operatorname{kruskal}) 重构树查询子树编号最大就行了,可能还要个可持久化数组吧。
写了写在13:02时过了。我稳了
写了个C的正确性不明的暴力,过了26分,想找找完全二叉树的规律,发现不会,就弃赛了。
100+100+26=226
体验极佳。