1796 社交網路 最短路條數

2021-07-24 13:34:51 字數 1549 閱讀 7737

時間限制: 1 s 空間限制: 128000 kb 題目等級 : 大師 master

2023年noi全國競賽

在社交網路(social network)的研究中,我們常常使用圖論概念去解釋一些 社會現象。 不妨看這樣的乙個問題。在乙個社交圈子裡有 n 個人,人與人之間有不同程 度的關係。我們將這個關係網路對應到乙個 n 個結點的無向圖上,兩個不同的人 若互相認識,則在他們對應的結點之間連線一條無向邊,並附上乙個正數權值 c, c 越小,表示兩個人之間的關係越密切。 我們可以用對應結點之間的最短路長度來衡量兩個人 s 和 t 之間的關係密切 程度,注意到最短路徑上的其他結點為 s 和 t 的聯絡提供了某種便利,即這些結 點對於 s 和 t 之間的聯絡有一定的重要程度。我們可以通過統計經過乙個結點 v 的最短路徑的數目來衡量該結點在社交網路中的重要程度。 考慮到兩個結點 a 和 b 之間可能會有多條最短路徑。我們修改重要程度的定 義如下: 令 cs,t表示從 s 到 t 的不同的最短路的數目, cs,t(v)表示經過 v 從 s 到 t 的最短 路的數目;則定義i(v)為結點 v 在社交網路中的重要程度。 為了使 i(v)和 cs,t(v)有意義,我們規定需要處理的社交網路都是連通的無向 圖,即任意兩個結點之間都有一條有限長度的最短路徑。

現在給出這樣一幅描述社交網路的加權無向圖,請你求出每乙個結點的重要程度。

輸入檔案中第一行有兩個整數,n 和 m,表示社交網路中結點和無向邊的數 目。在無向圖中,我們將所有結點從 1 到 n 進行編號。 接下來 m 行,每行用三個整數 a, b, c 描述一條連線結點 a 和 b,權值為 c 的 無向邊。注意任意兩個結點之間最多有一條無向邊相連,無向圖中也不會出現自 環(即不存在一條無向邊的兩個端點是相同的結點)。

輸出檔案包括 n 行,每行乙個實數,精確到小數點後 3 位。第 i 行的實數表 示結點 i 在社交網路中的重要程度

4 41 2 1

2 3 1

3 4 1

4 1 1

1.000

1.000

1.000

1.000

——《noi 2007 總結與解題 余林韻》

#include

#include

#include

#include

using

namespace

std;

const

int mn=102;

typedef

long

long ll;

ll n,m,t[mn][mn],a[mn][mn];

int main()

for(int i=1;i<=n;i++)t[i][i]=0,a[i][i]=0;

ll s,num;

for(int k=1;k<=n;k++)}}

}//for

double i;

/*for(int i=1;i<=n;i++)}}

printf("%.3f\n",i);

}return

0;}

最短路條數計數

題目 洛谷 p1144 最短路計數 主要是定義了兩個陣列,乙個是f i 陣列,表示i這個點能夠提供的方案,乙個是sf i 陣列,表示的是到i這個點的方案數。因為普通的加法原理不好搞定,學長說的 分幾種情況,具體看 中的解釋 include include include include includ...

計算最短路和次短路條數

題目 題意 在給定有向圖中查詢最短路與次短路,如果 最短路 1 次短路 則輸出 最短路條數 次短路條數 否則只輸出最短路條數。思路 在最短路的鬆弛操作上做些判斷和記錄即可,具體看 吧 有注釋 include include include include include include includ...

社交網路 最短路統計

分析 題目比較繁瑣,提取完有用資訊之後就是乙個最短路統計。唯一的難點是經過點v的最短路統計。我們可以轉換成c s,v c v,t 如下 include define inf 100000001 double f 101 101 double g 101 101 double min double x...