关于本题的一些并查集解法/提供一组hack数据
查看原帖
关于本题的一些并查集解法/提供一组hack数据
580036
SnowTrace楼主2023/8/21 11:07

这道题在网上有一些用并查集来写的题解,但是好像是不对的。

他们的具体做法是合并的时候让值小的数的 visvis 等于 1 ,这种写法可以通过,但是这样的写法过不了下面这组数据:

4
1 2 
2 3 
3 1 
4 1

答案是 4 ,那种做法的输出是 3 。

假设要将 xx,yy 合并,其中 xx 更小且 visx=1vis_x = 1,visy=0vis_y = 0,(等价于 xx 所在联通块有环,yy 所在的没有),合并后的这个联通块显然也有环,但是根节点 yy 上还有 visy=0vis_y = 0,所以这个算法就寄了。

这一篇(不是洛谷上的题解) 寄了。

这一篇 也寄了。

这一篇(是洛谷上的) 大概也寄了,但是因为他没贴代码,我也不好判断。

正确的并查集写法应该是记录联通块内的边数和点数。

(如果是我想错了,轻喷)

2023/8/21 11:07
加载中...