問題 B 道路建設 Ver I

2021-10-10 20:01:57 字數 1042 閱讀 6821

題目描述

有n個村莊,編號從1到n,你應該建造一些道路,使每個村莊都可以相互連線。

兩個村a和b是相連的,當且僅當a和b之間有一條道路,或者存在乙個村c使得在a和c之間有一條道路,並且c和b相連。

現在一些村莊之間已經有一些道路,你的任務就是修建一些道路,使所有村莊都連通起來,並且所有道路的長度總和是最小的。

輸入測試資料有多組

第一行是整數n(3 <= n <= 100),代表村莊的數量。 然後是n行,其中第i行包含n個整數,這些n個整數中的第j個是村莊i和村莊j之間的距離(距離是[1,1000]內的整數)。

然後是整數q(0 <= q <= n *(n + 1)/ 2),接下來是q行,每行包含兩個整數a和b(1 <= a輸出

輸出對於每組測試資料

輸出乙個整數,表示要構建的道路的長度總和最小值

樣例輸入

30 990 692

990 0 179

692 179 0

11 2

樣例輸出

**

#include

#include

#include

#define infinity 999999

using

namespace std;

struct edge

;class

graph

//沒有使用動態陣列,待優化}}

for(

int i=

1;i<=vexnum;i++

)//初始化並查集

father[i]

=i;int road;

cin >> road;

for(

int i=

0;iintfind

(int a)

void

sort()

//邊陣列從0開始}}

}int

kruskal()

}return value;}}

;int

main()

目的

乙個筆記

DS線性結構 火車問題 Ver I

某火車站只有一條鐵軌供火車停靠,所有的列車都從一側進入,從另一側出來。如果此時,列車a首先進入鐵路,然後列車b在列車a離開之前進入鐵路,則列車a不能離開,直到列車b離開 如下圖所示 車站最多有9列火車,所有火車都有乙個id 編號從1到n 列車按照order1的順序進入鐵路,你需要確定列車可以以ord...

JOISC2018 道路建設 LCT

loj傳送門 考的時候打的大暴力,其實想到了lct,但是思路有點沒轉過來。就算想到了估計也不能切,我沒有在考場寫lct的自信。其實這題不是讓你直接用lct維護答案,只是借用了lct的架構,讓權值相同的點在同一棵splay中,用一棵splay頂端的點的權值表示這棵splay中所有點的權值。發現從根到某...

XSY3370 道路建設 最短路

有乙個完全圖,邊有邊權。對於每個 i 求一棵生成樹,使得 sum n j 到 i 的路徑上邊權最小值 最小。n leq 2000,w leq 9 記最小的邊權 w 這條邊的乙個端點為 s 那麼 i 號點對應的生成樹就是從 i 到 s 的一條路徑,然後經過邊權最小的邊,再連向所有點。可以發現 i 到 ...