问题 B: PK吹泡泡(Kruscal)
問題 B: PK吹泡泡
時間限制: 1 Sec 內存限制: 128 MB
[提交][狀態][討論版]
題目描述
經歷了一天的訓練之后, PK準備放松一下,在草坪上吹起了泡泡。經歷了 PK 的一頓操作之后,天空中出現了 n 個泡
泡,每個泡泡都有個編號。 給出了m個關系,每個關系以u v w 的形式給出,表示編號為u的泡泡可以和編號為v的
泡泡連在一起,且花費的代價為 w。
這時, PK 想到了一個問題:如何以最小的代價把這 n 個泡泡中的一些泡泡連在一起,使得天空中出現 k 個泡泡聯通
塊?可是PK沉浸在了泡泡的海洋無法自拔,不想思考這個問題,他希望你來替他回答。
輸入
第一行三個整數 n,m,k (1 ≤ k < n ≤ 1000, 1 ≤ m ≤ 500000 )。表示泡泡的個數,PK 給出的關系數以及最終要
形成的泡泡聯通塊數。
接下來的m行 ,每行三個數 u,v,w(1 ≤ u, v ≤ n, 0 < w ≤ 1000000 ) ,表示你可以把泡泡 u 和泡泡 v 連在一起,需要
花費的代價為 w。
輸出
輸出一個整數,表示把這n個泡泡中的一些泡泡連在一起使得天空中出現k個泡泡聯通塊的最小代價
樣例輸入
4 4 2 1 2 1 2 3 4 3 4 2 1 4 5樣例輸出
3提示
數據保證有解
數據保證圖聯通
/*
認真讀題,再畫出樣例,其實這題就是一個最小生成樹,用Kruscal,開始時,有多少個點就要多少個聯通塊,每次選定一條邊,聯通塊個數就會少一個。
所以用Kruscal選邊,直到連通塊只剩K個即可返回最小代價。
*/
Ac_code:
總結
以上是生活随笔為你收集整理的问题 B: PK吹泡泡(Kruscal)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1732: 数花费(Kruscal)
- 下一篇: 问题 C: PK没有女朋友(判断是否存在