本文主要是介绍(洛谷 3367)【模(mú)板】并查集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
分析
其实就是洛谷3366降低了点层次
kruskal模板
代码
#include <cstdio>
using namespace std;
int fat[10001],n,m;
int father(int x){if (fat[x]==x) return x;else return fat[x]=father(fat[x]);
}
bool un(bool z,int x,int y){int fa=father(x);//祖先int fb=father(y);//祖先if (fa!=fb){if (z) fat[fb]=fa;//合并祖先return 0;} return 1;
}
int main(){scanf("%d%d",&n,&m);for (int i=1;i<=n;i++) fat[i]=i;for (int i=1;i<=m;i++){int z,x,y;scanf("%d%d%d",&z,&x,&y);if (z==1) un(1,x,y);else if (un(0,x,y)) putchar('Y');else putchar('N');if (z==2)putchar('\n');}return 0;
}
这篇关于(洛谷 3367)【模(mú)板】并查集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!