ybt 1488 新的開始

2021-10-25 05:50:31 字數 819 閱讀 6989

不難看出這是一道最小生成樹

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 新的開始

有乙個圖,要你讓所有點所在的連通塊都至少有乙個標記點。兩個點相連有乙個規定的費用,把乙個點標記也有費用。要費用最小,輸出最小費用。這道題看到判斷連通,我們就想到並查集。然後最小,就想到最小生成樹。但是它不一定只選乙個點標記,而且如果標記了不止乙個點,整個圖就可以不是整個連通的。那怎麼辦呢?那我們想想...