5 7 六度空間 30分

2021-07-22 02:38:20 字數 2014 閱讀 9032

「六度空間」理論又稱作「六度分隔(six degrees of separation)」理論。這個理論可以通俗地闡述為:「你和任何乙個陌生人之間所間隔的人不會超過六個,也就是說,最多通過五個人你就能夠認識任何乙個陌生人。」如圖1所示。

圖1 六度空間示意圖

假如給你乙個社交網路圖,請你對每個節點計算符合「六度空間」理論的結點佔結點總數的百分比。

輸入格式:

輸入第1行給出兩個正整數,分別表示社交網路圖的結點數n

1104​​

,表示人數)、邊數m(≤33

×n,表示社交關係數)。隨後的m行對應m條邊,每行給出一對正整數,分別是該條邊直接連通的兩個結點的編號(節點從1到n編號)。

輸出格式:

對每個結點輸出與該結點距離不超過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%

思路:這題主要是解決超時的問題卡的比較久。

比如像visited,我就不是簡單的0.1定義,不然每對乙個數字進行遍歷都還要重置visited,

#include 

#include

#define num 10001

/*評測結果

時間 結果 得分 題目 編譯器 用時(ms) 記憶體(mb) 使用者

2016-02-15 09:54 部分正確 27 5-7 gcc 14 1 569985011

測試點結果

測試點 結果 得分/滿分 用時(ms) 記憶體(mb)

測試點1 答案正確 18/18 2 1

測試點2 答案正確 3/3 2 1

測試點3 答案正確 3/3 2 1

測試點4 答案正確 3/3 2 1

測試點5 答案正確 3/3 0 0

*/typedef

struct lnode *vertex;

struct lnode ;

vertex creatv(int);

void print(vertex num,int n);

void insertv(vertex,int);

int bfs(vertex,int);

int connected[10001],visited[10001],n;

int main()

for(int i=0;i<=n;i++)visited[i]=0;

int cnt;

for(int i=1; i<=n; i++)

}int bfs(vertex v,int x)

}if(left++==pause)

}return right;

}vertex creatv(int num)

void insertv(vertex v,int x)

5 7 六度空間 30分

5 7 六度空間 30分 六度空間 理論又稱作 六度分隔 six degrees of separation 理論。這個理論可以通俗地闡述為 你和任何乙個陌生人之間所間隔的人不會超過六個,也就是說,最多通過五個人你就能夠認識任何乙個陌生人。如圖1所示。圖1 六度空間示意圖 假如給你乙個社交網路圖,請...

7 7 六度空間 (30 分)

題目鏈結 這個題用光蒐做,從網上看的,我一開始以為是深搜,寫半天沒寫出來。最後從網上看要用廣搜做,想了半天,還覺得應該用深搜,無奈的我回到我的床上,躺下吃了兩粒花生公尺,仔細思考了一下,就想出來廣搜怎麼做了!沉下心來,坐在電腦面前沒有躺在床上思考的更犀利。我記得以前也有乙個模擬鍊錶的題也是在床上臨睡...

7 7 六度空間 30分

六度空間 理論又稱作 六度分隔 six degrees of separation 理論。這個理論可以通俗地闡述為 你和任何乙個陌生人之間所間隔的人不會超過六個,也就是說,最多通過五個人你就能夠認識任何乙個陌生人。如圖1所示。假如給你乙個社交網路圖,請你對每個節點計算符合 六度空間 理論的結點佔結點...