有n塊田需要灌水,有兩種方式,一是取水灌田,二是打通兩塊田建立傳送門,每種方式都有一定的消耗,兩種方式結合,求一種最小消耗的方法。
將各個田看作是乙個點,每兩個點之間有乙個建立傳送門的耗費值,再加乙個超級原點,與每個點相連,表示取水灌田的耗費值,構成乙個圖,利用kruskal方法求最小生成樹即可。
#include
#include
using
namespace std;
struct edge
edge
(int f,
int t,
int w)};
bool
cmp(edge e1, edge e2)
edge e[
1000000];
int n,wi,p,tot;
int par[
1000000];
intfind
(int x)
intmain()
; e[tot++
]= edge;}
for(
int i =
0; i < n; i++);
}}for(
int i =
0; i <= n; i++
) par[i]
= i;
sort
(e, e + tot, cmp)
;int ans =
0, count =0;
for(
int i =
0; i < tot; i++)}
cout << ans << endl;
}
掌握魔法 東東 I
東東在老家農村無聊,想種田。農田有 n 塊,編號從 1 n。種田要灌氵 眾所周知東東是乙個魔法師,他可以消耗一定的 mp 在一塊田上施展魔法,使得黃河之水天上來。他也可以消耗一定的 mp 在兩塊田的渠上建立傳送門,使得這塊田引用那塊有水的田的水。1 n 3e2 黃河之水天上來的消耗是 wi,i 是農...
Week6 作業C 掌握魔法 東東 I
東東在老家農村無聊,想種田。農田有 n 塊,編號從 1 n。種田要灌水 眾所周知東東是乙個魔法師,他可以消耗一定的 mp 在一塊田上施展魔法,使得黃河之水天上來。他也可以消耗一定的 mp 在兩塊田的渠上建立傳送門,使得這塊田引用那塊有水的田的水。1 n 3e2 黃河之水天上來的消耗是 wi,i 是農...
Week6 作業 C 掌握魔法 東東 I
東東在老家農村無聊,想種田。農田有 n 塊,編號從 1 n。種田要灌氵 眾所周知東東是乙個魔法師,他可以消耗一定的 mp 在一塊田上施展魔法,使得黃河之水天上來。他也可以消耗一定的 mp 在兩塊田的渠上建立傳送門,使得這塊田引用那塊有水的田的水。1 n 3e2 黃河之水天上來的消耗是 wi,i 是農...