并查集
//在此之前,除了模板题,我的并查集可能只是用来写kruskal的。
不知道为什么我们的语言作业里突然出现了一道并查集的题——食物链,有dalao建议先做一下团伙,再做食物链。
于是这两道题我都做了一下。
团伙:https://www.cnblogs.com/LiqgNonqfu/p/9827787.html
食物链:https://www.cnblogs.com/LiqgNonqfu/p/9828479.html
这两道题本质上最终连成的都是单向环,一个二元,一个三元,通过设置边权来表示彼此的关系。(只不过团伙由于问题特殊,用环的思路有些麻烦,我的题解里的做法只是简单的合并)这样的集合结构,都可以加入并查集来优化,用一个另外的数组储存一个成员与其父亲的关系,那样就可以算出任何两个成员的关系,用上路径压缩,就能跑得很快了。