奈何能力不夠,用尤拉迴路dfs解題,但是memory limit exceed了,晚上回來再學用並查集。
題目描述:
假如已知有n個人和m對好友關係(存於數字r)。如果兩個人是直接或間接的好友(好友的好友的好友...),則認為他們屬於同乙個朋友圈,請寫程式求出這n個人裡一共有多少個朋友圈。
假如:n = 5 , m = 3 , r = , , },表示有5個人,1和2是好友,2和3是好友,4和5是好友,則1、2、3屬於乙個朋友圈,4、5屬於另乙個朋友圈,結果為2個朋友圈。
輸入:輸入包含多個測試用例,每個測試用例的第一行包含兩個正整數 n、m,1=
輸出:對應每個測試用例,輸出在這n個人裡一共有多少個朋友圈。
樣例輸入:
5 31 22 3
4 53 3
1 21 3
2 30
樣例輸出:
2
1
#include using namespace std;
int n, m,j;
int g[10000][10000];
int du[100000];
bool visit[100000];
void dfs(int start,int & counts) }}
int main()
cin >> m;
for (int i = 0; i > x1 >> x2;
g[x1][x2] = 1;
g[x2][x1] = 1;
du[x1]++;
du[x2]++;
} visit[1] = true;
counts++;
while (counts != n)
}} cout << num << endl;
} return 0;
}
資料結構 並查集 解決朋友圈問題
首先我們先來看乙個栗子 朋友圈問題 1 已知,有n個人和m對好友關係 存於乙個集合r中 2 如果兩個人是直接的或者間接的好友 好友的好友的好友。那麼他們屬於乙個集合,就是乙個朋友圈裡的。3 寫出程式,求這n個人中一共有多少個朋友圈。例如 n 5,m 3 r 因為集合和集合中有共同的朋友2,所以1,2...
資料結構 朋友圈問題的解決 並查集
本篇博文旨在介紹一種資料結構 並查集 本文介紹了該資料結構的使用場景,並用 進行了實現該資料結構 1 已知,有n個人和m對好友關係 存於乙個集合r中 2 如果兩個人是直接的或者間接的好友 好友的好友的好友。那麼他們屬於乙個集合,就是乙個朋友圈裡的 3 寫出程式,求這n個人中一共有多少個朋友圈 文字描...
並查集解決朋友圈問題
首先我們來看一道題筆試題,關於朋友圈的問題 解決這個問題,我們可以用並查集來解決。並查集是一種資料結構,用於處理不相交集合中的合併以及查詢問題,將n個元素分成一組不相交的集合,開始時我們把每乙個元素當成乙個集合,然後按規律將集合合併。舉例說明,首先定義乙個只有10個元素的陣列,並將每個元素的值設定為...