0分 求调

P1536 村村通

实在不行出个HACK也好啊
by ABCgfed @ 2023-05-29 23:14:51


@[ABCgfed](/user/764239) 这是我以前写的用并查集写的 ```cpp #include<iostream> #include<algorithm> using namespace std; const int N=1e4+10; int fa[N],n,m,p,q,ans=1e6,cnt; // 初始化并查集 void init(int n) { for (int i = 1; i <= n; i++) fa[i] = i; } // 查找x所在的集合 + 路径压缩 int find_Set(int x) { if (fa[x] != x) fa[x]=find_Set(fa[x]); return fa[x]; } // 合并x和y所在的集合,并且把他们的父节点赋值为小的那个 void merge(int x, int y){ int fx = find_Set(x); int fy = find_Set(y); if (fx < fy) fa[fy] = fx; else fa[fx] = fy; } int main(){ while(scanf("%d",&n)&&n){ int a,b,ans=0; scanf("%d",&m); init(n); while(m--) scanf("%d%d",&a,&b),merge(a,b); for(int i=1;i<=n;i++) if(find_Set(i)!=1) ans++,merge(1,i); printf("%d\n",ans); } return 0; } ```
by uberking @ 2023-05-29 23:30:20


推荐使用并查集捏
by Rebirth_Yun @ 2023-07-22 19:44:53


|