1601: [Usaco2008 Oct]灌水
1601: [Usaco2008 Oct]灌水
Time Limit: 5 Sec Memory Limit: 162 MB
Submit: 1342 Solved: 881
[Submit][Status]
Description
Farmer John已经决定把水灌到他的n(1<=n<=300)块农田,农田被数字1到n标记。把一块土地进行灌水有两种方法,从其他农田饮水,或者这块土地建造水库。 建造一个水库需要花费wi(1<=wi<=100000),连接两块土地需要花费Pij(1<=pij<=100000,pij=pji,pii=0). 计算Farmer John所需的最少代价。
Input
*第一行:一个数n
*第二行到第n+1行:第i+1行含有一个数wi
*第n+2行到第2n+1行:第n+1+i行有n个被空格分开的数,第j个数代表pij。
Output
*第一行:一个单独的数代表最小代价.
Sample Input
4
5
4
4
3
0 2 2 2
2 0 3 3
2 3 0 4
2 3 4 0
Sample Output
9
输出详解:
Farmer John在第四块土地上建立水库,然后把其他的都连向那一个,这样就要花费3+2+2+2=9
HINT
Source
题解:一个萌萌的最小生成树——唯一的关键就是应该再额外建立一个节点,然后连接各个可以建水库的点,然后别的点该怎么连怎么连,然后直接上MST,Accept不解释
var
i,j,k,l,m,n:longint;
a:array[..,..] of longint;
b:array[..] of longint;
c:array[..,..] of longint;
procedure swap(var x,y:longint);
var z:longint;
begin
z:=x;x:=y;y:=z;
end; procedure sort(l,r:longint);
var
i,j,x,y:longint;
begin
i:=l;
j:=r;
x:=c[(i+j) div ,];
repeat
while c[i,]<x do inc(i);
while c[j,]>x do dec(j);
if i<=j then
begin
swap(c[i,],c[j,]);
swap(c[i,],c[j,]);
swap(c[i,],c[j,]);
inc(i);dec(j);
end;
until i>j;
if i<r then sort(i,r);
if l<j then sort(l,j);
end;
function getfat(x:longint):longint;
begin
while b[x]<>x do x:=b[x];
exit(x);
end;
procedure merge(x,y:longint);
begin
b[getfat(x)]:=getfat(y);
end;
function tog(x,y:longint):boolean;
begin
exit(getfat(x)=getfat(y));
end; begin
readln(n);
for i:= to n do
begin
readln(a[,i]);
a[i,]:=a[,i];
end;
for i:= to n do
begin
for j:= to n do
read(a[i,j]);
readln;
end;
m:=;
for i:= to n do
b[i]:=i;
for i:= to n do
for j:= to n do
begin
if a[i,j]> then
begin
inc(m);
c[m,]:=i;
c[m,]:=j;
c[m,]:=a[i,j];
end;
end;
sort(,m);
j:=;
l:=;
for i:= to n do
begin
while tog(c[j,],c[j,]) do
inc(j);
merge(c[j,],c[j,]);
l:=l+c[j,];
inc(j); end;
writeln(l);
end.
1601: [Usaco2008 Oct]灌水的更多相关文章
- BZOJ 1601 [Usaco2008 Oct]灌水
1601: [Usaco2008 Oct]灌水 Time Limit: 5 Sec Memory Limit: 162 MB Description Farmer John已经决定把水灌到他的n(1 ...
- 【BZOJ】1601: [Usaco2008 Oct]灌水(kruskal)
http://www.lydsy.com/JudgeOnline/problem.php?id=1601 很水的题,但是一开始我看成最短路了T_T 果断错. 我们想,要求连通,对,连通!连通的价值最小 ...
- BZOJ 1601 [Usaco2008 Oct]灌水:最小生成树
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1601 题意: Farmer John已经决定把水灌到他的n(1<=n<=300 ...
- BZOJ——1601: [Usaco2008 Oct]灌水
http://www.lydsy.com/JudgeOnline/problem.php?id=1601 Time Limit: 5 Sec Memory Limit: 162 MBSubmit: ...
- BZOJ 1601 [Usaco2008 Oct]灌水 (最小生成树)
题意 Farmer John已经决定把水灌到他的n(1<=n<=300)块农田,农田被数字1到n标记.把一块土地进行灌水有两种方法,从其他农田饮水,或者这块土地建造水库. 建造一个水库需要 ...
- BZOJ 1601: [Usaco2008 Oct]灌水 最小生成树_超级源点
Description Farmer John已经决定把水灌到他的n(1<=n<=300)块农田,农田被数字1到n标记.把一块土地进行灌水有两种方法,从其他农田饮水,或者这块土地建造水库. ...
- BZOJ 1601 [Usaco2008 Oct]灌水 (建图+mst)
题意: 300个坑,每个坑能从别的坑引水,或者自己出水,i从j饮水有个代价,每个坑自己饮水也有代价,问让所有坑都有谁的最少代价 思路: 先建一个n的完全图,然后建一个超级汇点,对每个点连w[i],跑m ...
- BZOJ 1601: [Usaco2008 Oct]灌水( MST )
MST , kruskal 直接跑 ---------------------------------------------------------------------- #include< ...
- Kruskal || BZOJ 1601: [Usaco2008 Oct]灌水 || Luogu P1550 [USACO08OCT]打井Watering Hole
题面:P1550 [USACO08OCT]打井Watering Hole 题解:无 代码: #include<cstdio> #include<cstring> #includ ...
随机推荐
- Eclipse插件手动安装
拷贝至eclipse安装目录/dropins/文件夹下面: 不建议直接拷贝到features/ 和plugins/ 里面:
- javascript与java编码互转
java:java.net.URLEncoder.encode(s, "UTF-8");java.net.URLDecoder.decode(chezhanInEn,"U ...
- Mysql-Proxy代理配置
一.Mysql-Proxy原理 Mysql-Proxy是一个处于你的client端和Mysql Server端之间的一个简单程序,它可以监测.分析和改变他们的通信.它使用灵活没有限制,常见的用途包括: ...
- PrefixSpan算法原理总结
前面我们讲到频繁项集挖掘的关联算法Apriori和FP Tree.这两个算法都是挖掘频繁项集的.而今天我们要介绍的PrefixSpan算法也是关联算法,但是它是挖掘频繁序列模式的,因此要解决的问题目标 ...
- KB奇遇记(4):困难重重的选型
在以往的工作经历中,虽然也会出现公司的一些规章制度,但我鲜少与其打交道,也极少听说.但是来KB这里,突然发现公司居然并没有给我配备电脑!!原因是制度上并没有写IT人员入职需要配备电脑,尔后通过特批流程 ...
- MD5碰撞后时代,MD5还有存在的意义吗?
MD5是一种HASH函数,又称杂凑函数,由32位16进制组成,在信息安全范畴有广泛和首要运用的暗码算法,它有类似于指纹的运用.在网络安全协议中, 杂凑函数用来处理电子签名,将冗长的签名文件紧缩为一段一 ...
- BOM数据基础 - Mobox物料编码管理及实现
1 企业现状 在企业日常经营过程中会产生大量的文档,如设计图纸.变更单.计算书.设计方案等,如果是制造企业还会产生大量的产品.组成产品的零部件等物料,这些数据在进入信息系统前都需要有一个唯一的标识,也 ...
- 自定义IHttpModule
HttpModule作用是 IIS将接收到的请求分发给相应的ISAPI处理前,先截获该请求. 通过这个我们可以完成很多额外功能. 自定义IHttpModule的例子: 通过自定义HttpModule, ...
- Use Prerender to improve AngularJS SEO
Use Prerender to improve AngularJS SEO Nuget Package of ASP.NET MVC HttpModule for prerender.io: Ins ...
- linux文件相关的命令
1.linux下的文件分为字符设备文件和块设备文件 2.文件的属性有读写权限.执行权限.访问时间.修改时间.状态改变时间等. 状态改变时间指修改了文件的读写权限或者所有者等操作. 3.ls -l 执行 ...