P3390: [Usaco2004 Dec]Bad Cowtractors牛的报复

水题spfa排序从大到小就行了=-=//

 1 type
 2   node=record
 3     f,t,l:longint;
 4   end;
 5 var n,m,i,j,fx,fy,num,ans:longint;
 6 b:array[0..20001] of node;
 7 father:array[0..1001] of longint;
 8 procedure qs(t,w:longint);
 9 var mid,l,r:longint;
10 tem:node;
11 begin
12   l:=t; r:=w; mid:=b[(l+r) shr 1].l;
13   repeat
14     begin
15       while b[l].l>mid do inc(l);
16       while b[r].l<mid do dec(r);
17       if l<=r then
18         begin
19           tem:=b[l];
20           b[l]:=b[r];
21           b[r]:=tem;
22           inc(l);
23           dec(r);
24         end;
25     end;
26   until l>r;
27   if t<r then qs(t,r);
28   if l<w then qs(l,w);
29 end;
30 function findfather(x:longint):longint;
31 begin
32   if x=father[x] then exit(x)
33     else father[x]:=findfather(father[x]);
34   exit(father[x]);
35 end;
36 begin
37   readln(n,m);
38   for i:=1 to m do
39     with b[i] do
40       readln(f,t,l);
41   qs(1,m); num:=0;
42   for i:=1 to n do
43     father[i]:=i;
44   for i:=1 to m do
45     begin
46       fx:=findfather(b[i].f);
47       fy:=findfather(b[i].t);
48       if fx<>fy then
49         begin
50           father[fx]:=fy;
51           inc(ans,b[i].l);
52           inc(num);
53         end;
54       if num=n-1 then
55         begin
56           writeln(ans);
57           halt;
58         end;
59     end;
60   writeln(-1);
61 end.
时间: 2024-10-13 18:03:15

P3390: [Usaco2004 Dec]Bad Cowtractors牛的报复的相关文章

3390: [Usaco2004 Dec]Bad Cowtractors牛的报复

3390: [Usaco2004 Dec]Bad Cowtractors牛的报复 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 69  Solved: 49[Submit][Status][Discuss] Description 奶牛贝茜被雇去建设N(2≤N≤1000)个牛棚间的互联网.她已经勘探出M(1≤M≤ 20000)条可建的线路,每条线路连接两个牛棚,而且会苞费C(1≤C≤100000).农夫约翰吝啬得很,他希望建设费用最少甚至他都不想给

BZOJ 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复

题目 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 53  Solved: 37[Submit][Status] Description 奶牛贝茜被雇去建设N(2≤N≤1000)个牛棚间的互联网.她已经勘探出M(1≤M≤ 20000)条可建的线路,每条线路连接两个牛棚,而且会苞费C(1≤C≤100000).农夫约翰吝啬得很,他希望建设费用最少甚至他都不想给贝茜工钱. 

BZOJ3390: [Usaco2004 Dec]Bad Cowtractors牛的报复

3390: [Usaco2004 Dec]Bad Cowtractors牛的报复 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 43  Solved: 29[Submit][Status] Description 奶牛贝茜被雇去建设N(2≤N≤1000)个牛棚间的互联网.她已经勘探出M(1≤M≤ 20000)条可建的线路,每条线路连接两个牛棚,而且会苞费C(1≤C≤100000).农夫约翰吝啬得很,他希望建设费用最少甚至他都不想给贝茜工钱. 贝茜得

bzoj 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复 -- 最大生成树

3390: [Usaco2004 Dec]Bad Cowtractors牛的报复 Time Limit: 1 Sec  Memory Limit: 128 MB Description 奶牛贝茜被雇去建设N(2≤N≤1000)个牛棚间的互联网.她已经勘探出M(1≤M≤ 20000)条可建的线路,每条线路连接两个牛棚,而且会苞费C(1≤C≤100000).农夫约翰吝啬得很,他希望建设费用最少甚至他都不想给贝茜工钱. 贝茜得知工钱要告吹,决定报复.她打算选择建一些线路,把所有牛棚连接在一起,让约翰花

【BZOJ】3390: [Usaco2004 Dec]Bad Cowtractors牛的报复(kruskal)

.. #include <cstdio> #include <cstring> #include <cmath> #include <string> #include <iostream> #include <algorithm> #include <queue> using namespace std; #define rep(i, n) for(int i=0; i<(n); ++i) #define for1(

3391: [Usaco2004 Dec]Tree Cutting网络破坏

3391: [Usaco2004 Dec]Tree Cutting网络破坏 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 76  Solved: 59[Submit][Status][Discuss] Description 约翰意识到贝茜建设网络花费了他巨额的经费,就把她解雇了.贝茜很愤怒,打算狠狠报 复.她打算破坏刚建成的约翰的网络.    约翰的网络是树形的,连接着N(1≤N≤10000)个牛棚.她打算切断某一个牛棚的电源,使和这个牛棚相连的

3389: [Usaco2004 Dec]Cleaning Shifts安排值班

3389: [Usaco2004 Dec]Cleaning Shifts安排值班 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 102  Solved: 46[Submit][Status][Discuss] Description 一天有T(1≤T≤10^6)个时段.约翰正打算安排他的N(1≤N≤25000)只奶牛来值班,打扫 打扫牛棚卫生.每只奶牛都有自己的空闲时间段[Si,Ei](1≤Si≤Ei≤T),只能把空闲的奶牛安排出来值班.而且,每个

BZOJ 3391: [Usaco2004 Dec]Tree Cutting网络破坏( dfs )

因为是棵树 , 所以直接 dfs 就好了... ------------------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #define rep( i , n ) for( int i = 0 ; i < n

BZOJ 3389: [Usaco2004 Dec]Cleaning Shifts安排值班

题目 3389: [Usaco2004 Dec]Cleaning Shifts安排值班 Time Limit: 1 Sec  Memory Limit: 128 MB Description 一天有T(1≤T≤10^6)个时段.约翰正打算安排他的N(1≤N≤25000)只奶牛来值班,打扫 打扫牛棚卫生.每只奶牛都有自己的空闲时间段[Si,Ei](1≤Si≤Ei≤T),只能把空闲的奶牛安排出来值班.而且,每个时间段必需有奶牛在值班.  那么,最少需要动用多少奶牛参与值班呢?如果没有办法安排出合理的