描述
「六度空間」理論又稱作「六度分隔(six degrees of separation)」理論。這個理論可以通俗地闡述為:「你和任何乙個陌生人之間所間隔的人不會超過六個,也就是說,最多通過五個人你就能夠認識任何乙個陌生人。」如圖1所示。
假如給你乙個社交網路圖,請你對每個節點計算符合「六度空間」理論的結點佔結點總數的百分比。
輸入格式
輸入第1行給出兩個正整數,分別表示社交網路圖的結點數n(1
103 ,表示 人數 )n(1n( 1103 ,表 示人數) 、邊數m(≤ 33×n, 表示社交 關係數) m(≤33×n,表示社交關係數) m(≤33× n,表示 社交關係 數)。隨後的m行對應m條邊,每行給出一對正整數,分別是該條邊直接連通的兩個結點的編號(節點從1到n nn編號)。 輸出格式 對每個結點輸出與該結點距離不超過6的結點數占結點總數的百分比,精確到小數點後2位。每個結節點輸出一行,格式為「結點編號:(空格)百分比%」。 輸入樣例10 9
1 22 3
3 44 5
5 66 7
7 88 9
9 10輸出樣例
1: 70.00%
2: 80.00%
3: 90.00%
4: 100.00%
5: 100.00%
6: 100.00%
7: 100.00%
8: 90.00%
9: 80.00%
10: 70.00%
題意略
題解
通過此題了解圖的vector儲存和bfs案例,主要的難點是怎麼分辨層數
**
#include
using
namespace std;
typedef
long
long ll;
const ll maxn =
2e6+7;
struct edge };
vector e[
1500];
//利用vector動態陣列儲存
void
init
(int n)
}int
bfs(vector x,
int node)}if
(u == last)
if(level ==6)
break
;//當層級超過6時退出迴圈,返回搜尋到的節點
}return cnt;
}int
main()
for(
int i =
1; i <= n;
++i)
return0;
}
7 7 六度空間 30分 BFS
pta資料結構與演算法題目集 7 7 六度空間 30分 六度空間 理論又稱作 六度分隔 six degrees of separation 理論。這個理論可以通俗地闡述為 你和任何乙個陌生人之間所間隔的人不會超過六個,也就是說,最多通過五個人你就能夠認識任何乙個陌生人。如圖1所示。假如給你乙個社交網...
7 7 六度空間
六度空間 理論又稱作 六度分隔 six degrees of separation 理論。這個理論可以通俗地闡述為 你和任何乙個陌生人之間所間隔的人不會超過六個,也就是說,最多通過五個人你就能夠認識任何乙個陌生人。如圖1所示。圖1 六度空間示意圖 假如給你乙個社交網路圖,請你對每個節點計算符合 六度...
7 1 六度空間
六度空間 理論又稱作 六度分隔 six degrees of separation 理論。這個理論可以通俗地闡述為 你和任何乙個陌生人之間所間隔的人不會超過六個,也就是說,最多通過五個人你就能夠認識任何乙個陌生人。如圖1所示。假如給你乙個社交網路圖,請你對每個節點計算符合 六度空間 理論的結點佔結點...