不難看出這是一道最小生成樹
but,我(蒟蒻)一開始以為是取最小的 v[i
]v[i]
v[i]
然後構建最小生成樹
這樣會有乙個問題,建造電網有時候不一定會比建造電站更優
so~,我們可以把所有建電站的邊連到乙個虛點上,這樣直接進行最小生成樹就不會有問題了
#include
using
namespace std;
typedef
long
long ll;
const
int inf =
1e9+7;
const
int n =
310000
;int n, v[n]
, f[n]
, ans;
struct edge
}edge[n <<1]
;int head[n <<1]
, tot;
void
add_edge
(int x,
int y,
int z)
inline
int read (
)while
(ch >=
'0'&& ch <=
'9')
return s * w;
}int
find
(int x)
int main ()}
printf
("%d\n"
, ans)
;return0;
}
1488 新的開始
題目描述 發展採礦業當然首先得有礦井,小 ff 花了上次探險獲得的千分之一的財富請人在島上挖了 n 口礦井,但他似乎忘記考慮的礦井供電問題 為了保證電力的 小 ff 想到了兩種辦法 在這一口礦井上建立乙個發電站,費用為 v 發電站的輸出功率可以供給任意多個礦井 將這口礦井與另外的已經有電力 的礦井之...
1488 新的開始
1488 新的開始 時間限制 1000 ms 記憶體限制 65536 kb 提交數 773 通過數 401 題目描述 發展採礦業當然首先得有礦井,小 ff 花了上次探險獲得的千分之一的財富請人在島上挖了 n 口礦井,但他似乎忘記考慮的礦井供電問題 為了保證電力的 小 ff 想到了兩種辦法 在這一口礦...
ybt高效高階3 2 2 新的開始
有乙個圖,要你讓所有點所在的連通塊都至少有乙個標記點。兩個點相連有乙個規定的費用,把乙個點標記也有費用。要費用最小,輸出最小費用。這道題看到判斷連通,我們就想到並查集。然後最小,就想到最小生成樹。但是它不一定只選乙個點標記,而且如果標記了不止乙個點,整個圖就可以不是整個連通的。那怎麼辦呢?那我們想想...