並查集的應用2
//並查集
//樹的概念來理解,如果兩個點,他們的根節點相同,
//那麼他們在一個集合中。
#include<iostream>
using namespace std;
//n個小朋友,輸入是朋友的編號,朋友關係可以傳遞。輸出最大集合個數,集合內,任意兩個人都是朋友。
int tree[1000];
int sum[1000];//儲存根節點下子孫節點個數。
int findroot(int x)//尋根函式。
{
if(tree[x]==-1) return x;
else
{
int temp=findroot(tree[x]);
tree[x]=temp;
return temp;
}
}
int main()
{
int n;
cin>>n;//n個小朋友。
for(int i=1;i<=n;i++)
{
tree[i]=-1;//初始化為根節點。
sum[i]=1;
}
int a,b;
for(int i=1;i<=n;i++)
{
cin>>a>>b;//ab互為朋友。
a=findroot(a);
b=findroot(b);
if(a!=b)
{root[a]=b;
sum[b]+=sum[a];
sum[a]=0;
}
}
ans=0;
for(int i=1;i<=n;i++)
{
if(tree[i]==-1&&ans<sum[i]) ans=sum[i];
}
cout<<ans;//輸出最大的聯通圖的節點數。
return 0;
}
相關文章
- 並查集的應用並查集
- 並查集應用並查集
- 並查集—應用並查集
- 並查集深度應用並查集
- 並查集以及應用並查集
- 並查集(二)並查集的演算法應用案例上並查集演算法
- 並查集的簡單應用並查集
- 並查集的分析及應用並查集
- 並查集應用總結並查集
- 並查集的應用:hdu 1213並查集
- 社交網路 (並查集的應用)並查集
- 並查集詳解與應用並查集
- 食物鏈(並查集的簡單應用)並查集
- 並查集經典應用場景並查集
- 並查集的初級應用及進階並查集
- 並查集(Union-Find) 應用舉例並查集
- 【帶權並查集】理論和應用並查集
- 並查集 (Union-Find Sets)及其應用並查集
- 並查集在實際問題中的應用並查集
- 資料結構 — 並查集的原理與應用資料結構並查集
- 並查集到帶權並查集並查集
- 並查集(一)並查集的幾種實現並查集
- 【演算法】並查集的運用演算法並查集
- 並查集(Union-Find) 應用舉例 --- 基礎篇並查集
- 資料結構之Kruskal演算法(並查集的應用)資料結構演算法並查集
- 並查集的使用並查集
- 2-4 朋友圈【並查集】並查集
- 並查集演算法Union-Find的思想、實現以及應用並查集演算法
- 並查集(小白)並查集
- (轉載)並查集的作用並查集
- 並查集(Union Find)並查集
- The Door Problem 並查集並查集
- 並查集練習並查集
- 寫模板, 並查集。並查集
- 簡單易懂的並查集演算法以及並查集實戰演練並查集演算法
- L2-013 紅色警報【並查集】並查集
- 並查集的使用及其實現並查集
- The Suspects-並查集(4)並查集