並查集的簡單應用
題目:找出犯罪團伙數目
第一行輸入n,m,n表示強盜的人數,m表示有m條線索,(線索中包含強盜的同夥資訊)
參見樣例輸入第二行,1 2表示1號強盜和2號強盜是同夥
樣例輸入:
10 9
1 2
3 4
5 2
4 6
2 6
8 7
9 7
1 6
2 4
樣例輸出:
3
程式碼實現:
#include<bits/stdc++.h>
using namespace std;
int father[100005]={0};
//查
int findd(int x)
{
if(x == father[x]) return x;
else father[x] = findd(father[x]);
return father[x];
}
//並
void join(int x,int y)
{
int fx = findd(x);
int fy = findd(y);
if(fx != fy) father[fy] = fx;
}
int main()
{
int n,m,a,b;
scanf("%d%d",&n,&m);
//初始化
for(int i = 0;i <n;i++)
{
father[i] = i;
}
for(int i= 0 ;i<m;i++)
{
scanf("%d%d",&a,&b);
join(a,b);
}
int cnt=0;
for(int i=0;i< n;i++)
{
if(i == father[i]) cnt++;
}
cout<<cnt<<endl;
}
相關文章
- 食物鏈(並查集的簡單應用)並查集
- 並查集的應用並查集
- 並查集應用並查集
- 並查集—應用並查集
- 並查集的應用2並查集
- 並查集深度應用並查集
- 並查集以及應用並查集
- 並查集的分析及應用並查集
- 並查集(二)並查集的演算法應用案例上並查集演算法
- 並查集應用總結並查集
- 簡單易懂的並查集演算法以及並查集實戰演練並查集演算法
- 並查集的應用:hdu 1213並查集
- 社交網路 (並查集的應用)並查集
- 並查集詳解與應用並查集
- 並查集擴充套件應用並查集套件
- HDU 1272小希的迷宮(簡單並查集)並查集
- 並查集經典應用場景並查集
- 【學習筆記】並查集應用筆記並查集
- 並查集的初級應用及進階並查集
- 並查集(Union-Find) 應用舉例並查集
- 【帶權並查集】理論和應用並查集
- 並查集 (Union-Find Sets)及其應用並查集
- 並查集在實際問題中的應用並查集
- 資料結構 — 並查集的原理與應用資料結構並查集
- 【並查集】【帶偏移的並查集】食物鏈並查集
- 並查集到帶權並查集並查集
- 並查集(一)並查集的幾種實現並查集
- 【演算法】並查集的運用演算法並查集
- 並查集(Union-Find) 應用舉例 --- 基礎篇並查集
- 資料結構之Kruskal演算法(並查集的應用)資料結構演算法並查集
- Widget的簡單應用並適配iOS10iOS
- 並查集的使用並查集
- 並查集演算法Union-Find的思想、實現以及應用並查集演算法
- 分享一個簡單的 laravel 應用健康檢查命令Laravel
- websoket的簡單應用Web
- npm的簡單應用NPM
- 3.1並查集並查集
- 並查集(小白)並查集