資料結構與演算法問題 朋友圈

2021-06-25 16:39:47 字數 1090 閱讀 9973

奈何能力不夠,用尤拉迴路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 3

1 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個元素的陣列,並將每個元素的值設定為...