CF400D Dima and Bacteria 题解

对于第一问,用并查集将所有边权为 \(0\) 的边的端点合并,

然后对于每个 type 看里面是否所有的点都在一个集合中即可。

时间复杂度 \(O(n \log n)\)(默认使用路径压缩并查集)。

对于第二问,将 type 看作点,

对于每两个 type 取它们中两个点的最小边权连边,

然后跑 floyd 即可,时间复杂度 \(O(k^3)\)

posted @ 2024-03-02 16:55  _KidA  阅读(10)  评论(0)    收藏  举报