2014.3 USACO月赛T1 Watering the Fields
T1:
Watering the Fields
题目描述
每块田地i 由一个二维平面上独一无二的点(xi; yi) 描述,这里有0 <= xi; yi <=1000。在两块田地i 和j 之间建造水管的费用等于它们之间欧几里得距离的平方:(xi-xj)^2+(yi-yj)^2
FJ 希望建造一个连接所有田地并且花费最小的管道系统——满足从任意田地出发,水可以通过一系列管道到达另外的任意一块田地。
不幸的是,帮助FJ 安装灌溉系统的承包商拒绝安装任何花费(欧几里得长度平方)小于C(1 C 1; 000; 000)的管道。
请帮助FJ 计算他最少需要为连接他所有田地的管道网络支付多少钱。
输入格式
第2 至N + 1 行:第i 行包含整数xi 和yi。
输出格式
输入样例
3 11 0 2 5 0 4 3
输出样例
46 样例解释: 有三块田地,分别在坐标(0; 2); (5; 0) 和(4; 3)。承包商将只会安装费用不少于11 的管道。 FJ 不能建造连接分别在(4; 3) 和(5; 0) 的田地的管道,因为它的费用只有10。 故他只得建造连接(0; 2) 和(5; 0) 且费用为29 的管道,以及连接(0; 2) 和(4; 3)且费用为17 的管道。
数据范围
对于30% 的数据,有N <= 100。
对于40% 的数据,有N <= 200。
题解:
var n,m,i,j,x,y,bz,lenb,ans,t1,t2:longint;a:array[1..2000,1..2]of longint;f:array[1..2000,1..2000]of longint;b:array[0..4000000,1..3]of longint;c:array[1..2000]of longint;
function father(x:longint):longint;
beginif c[x]=x then exit(x) else exit(father(c[x]));
end;
procedure kuaipai(l,r:longint);
var i,j,mid:longint;
begini:=l;j:=r;mid:=b[(l+r)div 2,3];repeatwhile b[i,3]<mid do inc(i);while b[j,3]>mid do dec(j);if i<=j thenbeginb[0]:=b[i];b[i]:=b[j];b[j]:=b[0];inc(i);dec(j);end;until i>j;if l<j then kuaipai(l,j);if i<r then kuaipai(i,r)
end;
beginreadln(n,m);for i:=1 to n dobeginreadln(x,y);a[i,1]:=x;a[i,2]:=y;end;for i:=1 to n dobeginbz:=0;for j:=1 to n doif (a[i,1]-a[j,1])*(a[i,1]-a[j,1])+(a[i,2]-a[j,2])*(a[i,2]-a[j,2])>=m thenbeginf[i,j]:=(a[i,1]-a[j,1])*(a[i,1]-a[j,1])+(a[i,2]-a[j,2])*(a[i,2]-a[j,2]);inc(lenb);b[lenb,1]:=i;b[lenb,2]:=j;b[lenb,3]:=f[i,j];bz:=1;end;if bz=0 thenbeginwriteln(-1);exit;end;end;kuaipai(1,lenb);for i:=1 to lenb do c[b[i,1]]:=b[i,1];for i:=1 to lenb dobeginc[b[i,1]]:=father(b[i,1]);c[b[i,2]]:=father(b[i,2]);if c[b[i,1]]<>c[b[i,2]] thenbeginc[c[b[i,2]]]:=c[b[i,1]];ans:=ans+b[i,3];end;end;writeln(ans);
end.
2014.3 USACO月赛T1 Watering the Fields相关推荐
- 2014.3 USACO月赛T2 The Lazy Cow
T2: The Lazy Cow Description 夏天很热,贝茜越发地懒散了.她想要使自己位于她的田里一个尽可能在短距离内够到美味的青草的位置. 贝茜居住的田野被描述为一个N 乘N 方格组成的 ...
- BZOJ 3479: [Usaco2014 Mar]Watering the Fields( MST )
MST...一开始没注意-1结果就WA了... ---------------------------------------------------------------------------- ...
- USACO oct. 09 Watering Hole
USACO oct. 09 Watering Hole 2017年7月15日 Prim算法 #include<iostream> #include<algorithm> #in ...
- P2212 [USACO14MAR]Watering the Fields S(Prim)
[USACO14MAR]Watering the Fields S - 洛谷https://www.luogu.com.cn/problem/P2212 #include <iostream&g ...
- Problem B:化装晚会(usaco月赛)
Problem B:化装晚会(usaco月赛) Time Limit:1000MS Memory Limit:65536K Total Submit:162 Accepted:104 Descrip ...
- USACO月赛使用攻略
usaco是美国中学生的官方竞赛网站,美国著名在线题库,专门为信息学竞赛选手准备,但必须在注册后才能进入题库. 1. 进入USACO月赛网址,点击进行注册: 2. 填写个人信息,点击提交submit ...
- P2212 [USACO14MAR]Watering the Fields S(最小生成树)
题目描述 Due to a lack of rain, Farmer John wants to build an irrigation system to send water between hi ...
- 信奥题库(OI题库)8月月赛T1题解 幂次数
0.前置知识 分解质因数 快速幂(不必要) 1.思路 首先,我们知道一个正整数(设它为 \(a\) )一定能分解成这样的形式: \[a= \prod_{i\in N^*} p_i^{c_i} \] 其 ...
- [usaco月赛]梦幻王国
Description 梦幻王国钱币面值有五种1.7.49.343.2401(即:7^0.7^1.7^2.7^3.7^4).某人买东西要用现金支付n元,买卖双方可以相互找钱(假设双方各种钱币数量都足够 ...
- 洛谷 First Step (ファーストステップ) 3月月赛T1
题目背景 知らないことばかりなにもかもが(どうしたらいいの?) 一切的一切 尽是充满了未知数(该如何是好) それでも期待で足が軽いよ(ジャンプだ!) 但我仍因满怀期待而步伐轻盈(起跳吧!) 温度差なん ...
最新文章
- 【译】SQL Server误区30日谈-Day1-正在运行的事务在服务器故障转移后继续执行
- js 定时网页点击_JS的小乐趣:轻松完成打地鼠游戏
- NLP:基于textrank4zh库对文本实现提取文本关键词、文本关键短语和文本摘要
- python字符串_Python字符串格式化%s%d%f详解
- Python filecmp库
- 漫画:什么是 “智猪博弈” ?
- 解决fake_useragent报错
- 机器学习视频课程(超清完整11周)分享给大家!
- 【FTP工具】8UFTP工具是我自己比较经常用的,推荐。
- 乐学Python作业题
- 微服务设计指导-使用云原生微服务解决传统海量跑批时引起的系统间“级联雪崩”以及效率
- 5G NR Polar码简介(一)
- 【C#本质论 十一】合式类型(二)程序集引用、XML注释、垃圾回收和资源清理
- Linux Terminal终端常用快捷键
- SecureCRT连接开发板
- 这个夏天,迅雷“惹火了”区块链开发者|大赛
- [文萃画材•分享]秋叶+美术颜料=BOOM
- mysql的脏读,不可重复读,幻读
- 使用多线程批量处理数据
- SCI论文投稿经验分享——如何在投稿前准备好需要的材料