教育培訓手機網(wǎng)站模板下載長沙優(yōu)化排名
題目描述:還是暢通工程
某省調(diào)查鄉(xiāng)村交通狀況,得到的統(tǒng)計表中列出了任意兩村莊間的距離。省政府“暢通工程”的目標是使全省任何兩個村莊間都可以實現(xiàn)公路交通(但不一定有直接的公路相連,只要能間接通過公路可達即可),并要求鋪設的公路總長度為最小。請計算最小的公路總長度。
輸入描述:
測試輸入包含若干測試用例。每個測試用例的第1行給出村莊數(shù)目N ( < 100
);隨后的N(N-1)/2行對應村莊間的距離,
每行給出一對正整數(shù),分別是兩個村莊的編號,以及此兩村莊間的距離。
為簡單起見,村莊從1到N編號。
當N為0時,輸入結(jié)束,該用例不被處理。
輸出描述:
對每個測試用例,在1行里輸出最小的公路總長度。
?算法分析:最小生成樹至少包含一個最小邊;每次找最小的邊;
若成環(huán),則丟棄,繼續(xù)遍歷下一個邊
(判斷是否會成環(huán):若邊兩點屬于一個集合,)
反證:若一個最小生成樹,不包含最小邊
? ? ?用最小邊,替換其中一條邊,得到的更小的生成樹(則矛盾)
代碼實現(xiàn):
?
易錯細節(jié):1.min1的大小應該大于n*(n-1)/2
(1)雖然數(shù)組開小了,但沒說明內(nèi)存問題(很難發(fā)現(xiàn))
?
?
?
?
?
?
?
?