Kruskal 如何优化内存

P3366 【模板】最小生成树

@[Violet_Evergardon](/user/1190741) 为什么要用有向边啊/yiw
by As2O3 @ 2024-08-12 11:51:38


@[Violet_Evergardon](/user/1190741) 用并查集直接去看当前节点是否在生成树里就好了啊,你这建了双倍的边浪费空间的
by As2O3 @ 2024-08-12 11:52:49


@[As2O3](/user/157820) 应该不是这里的问题,用两个有向边表示无向边是常规操作
by _8008008 @ 2024-08-12 11:55:45


@[_8008008](/user/803885) 但是他浪费空间啊,lz有报错MLE的
by As2O3 @ 2024-08-12 11:57:36


那试试吧
by _8008008 @ 2024-08-12 11:59:05


@[As2O3](/user/157820) 是这个问题,在这里确实没有必要建两边。改过后就没有MLE了。但#13还是T了,是因为用堆了吗?虽然一个sort可以搞定,但都是nlogn的复杂度啊。
by Violet_Evergardon @ 2024-08-12 16:37:55


@[Violet_Evergardon](/user/1190741) 可能是,~~但我没学堆排~~,我尽量帮忙找找问题
by As2O3 @ 2024-08-12 16:41:37


@[Violet_Evergardon](/user/1190741) ```cpp while(find(t.u)==find(t.v)) q.pop(),t=q.top(); ``` 这句话太慢了,**个人感觉**这个for套while可以卡到 $O(n^2)$,找找其他判不连通的方法吧,最好还是用回sort
by As2O3 @ 2024-08-12 17:01:18


|