Description

Zjr506很喜欢猫,某一天他突然心血来潮,想捕捉学校里活动的猫。
为了捕猫,Zjr506在校园中放置了N个木桩,当他见到有猫进入他的狩猎范围后,就会以迅雷不及掩耳的速度在一些木桩之间绕上藩篱以困住这些猫。
一段时间后,Zjr506在绕了M个藩篱后兴高采烈的离开了。作为正义的使者,Ztxz16不忍心看到这些猫受到折磨,于是决定拆除一些藩篱让所有的猫都逃出去。因为Zjr506的巧妙设计,藩篱不会在除木桩之外的地方相交。这些藩篱构成了一些封闭的区域,每一个区域中都有一只猫。
因为Zjr506制造这些藩篱也不容易,所以Ztxz16希望拆除的藩篱总长度尽量小,现在他希望你告诉他最小的总长度。

Input

第一行两个数 n,m ( 2<=n<=10000 , 1<=m<=50000 )
接下来 n 行 , 每行两个整数 xi,yi, 代表第 i 个木桩的坐标 ( − 10000 ≤ xi, yi ≤ 10000).
接下来 m 行,每行两个整数 pi,qi (1 ≤ pj, qj ≤ N) , 代表木桩 pi 与木桩 qi 之间有一个藩篱。

Output

输出一个实数代表答案,当答案与标准答案差的绝对值不超过0.001时认为它是正确的。

Sample Input

8 8
0 0
3 0
3 3
0 3
1 1
1 2
2 2
2 1
1 2
2 3
3 4
4 1
5 6
6 7
7 8
8 5

Sample Output

4.000000000

Data Constraint

对于20%的数据:
N , M <= 30
对于30%的数据:
N, M <= 300
对于100%的数据:
N <= 10000, M <= 50000

思路:
我们先换个思路来理解这道题目
YY一下一个封闭牛圈,木桩看成点,篱笆看成边,既然他是要封闭的,那么他肯定是一个环,对吧?
现在我们去掉任意一条边,他就不是一个环而是一棵树了
题目要保证一定保证整幅图没有环(有环里面就有猫),我们就不能让这个图出现环
那这道题就是一道裸的MST……

只不过和MST不同的是,这里要删掉的边最短,所以是求最大生成树而已
用kruskal搞最大生成树,判断环用并查集
如果当前边连接x和y,而x的祖先和y的祖先相同,那再连就会有环出现,当前边不选
比较简单,那就AC吧

代码:

varx,y,father:array[0..10000]of longint;a:array[0..50000]ofrecorddis:extended;x,y:longint;end;n,m,i,j,k,l,r:longint;ans:extended;
procedure qsort(l,r:longint);
vari,j:longint;mid:extended;
begini:=l;j:=r;mid:=a[(l+r)shr 1].dis;repeatwhile a[i].dis>mid do inc(i);while a[j].dis<mid do dec(j);if i<=j thenbegina[0]:=a[i];a[i]:=a[j];a[j]:=a[0];inc(i);dec(j);end;until i>j;if l<j then qsort(l,j);if i<r then qsort(i,r);
end;
function getfather(x:longint):longint;
beginif father[x]=x then exit(x);father[x]:=getfather(father[x]);exit(father[x]);
end;
beginreadln(n,m);for i:=1 to n do readln(x[i],y[i]);for i:=1 to m dobeginreadln(l,r);a[i].x:=l;a[i].y:=r;a[i].dis:=sqrt(sqr(x[l]-x[r])+sqr(y[l]-y[r]));end;qsort(1,m);for i:=1 to n do father[i]:=i;for i:=1 to m dobeginj:=getfather(a[i].x);k:=getfather(a[i].y);if j<>k then father[j]:=kelse ans:=ans+a[i].dis;end;writeln(ans:0:9);
end.

JZOJsenior4740.【雅礼联考GDOI2017模拟9.2】Zjr506的捕猫计划相关推荐

  1. JZOJ 4740 【雅礼联考GDOI2017模拟9.2】Zjr506的捕猫计划

    Zjr506的捕猫计划 题目大意 给出有nn个点,mm条边的一个图,现在要删掉一些边,使得该图内没有环,问实现目标的最小代价.(代价即为删掉的边的总长度) 数据范围 NN<=1000010000 ...

  2. 【雅礼联考GDOI2017模拟】Zjr506的捕猫计划

    Description Zjr506很喜欢猫,某一天他突然心血来潮,想捕捉学校里活动的猫. 为了捕猫,Zjr506在校园中放置了N个木桩,当他见到有猫进入他的狩猎范围后,就会以迅雷不及掩耳的速度在一些 ...

  3. 2017.08.19【NOIP提高组】模拟赛B组 【雅礼联考GDOI2017模拟】Zjr506的捕猫计划

    ####Description Zjr506很喜欢猫,某一天他突然心血来潮,想捕捉学校里活动的猫. 为了捕猫,Zjr506在校园中放置了N个木桩,当他见到有猫进入他的狩猎范围后,就会以迅雷不及掩耳的速 ...

  4. 【雅礼联考GDOI2017模拟9.2】Zjr506的捕猫计划

    Description Zjr506很喜欢猫,某一天他突然心血来潮,想捕捉学校里活动的猫. 为了捕猫,Zjr506在校园中放置了N个木桩,当他见到有猫进入他的狩猎范围后,就会以迅雷不及掩耳的速度在一些 ...

  5. JZOJ4740. 【雅礼联考GDOI2017模拟9.2】Zjr506的捕猫计划(2017.8B组)

    https://jzoj.net/senior/#main/show/4740 想法: 答案就是让留下来的边尽量打,等于所有边的长度-没有环的树的长度,所以打一棵最大生成树,如果保证2个点不属于同一棵 ...

  6. jzoj4739-[雅礼联考GDOI2017模拟9.2]Ztxz16学图论【LCT,树状数组】

    正题 题目链接:https://gmoj.net/senior/#main/show/4739 题目大意 nnn个点mmm条边的一张图,qqq次询问一个区间的边可以形成多少连通块. 解题思路 询问按照 ...

  7. 4020. 【雅礼联考DAY02】Revolution

    Description 地图是个矩形的网格. 可以花费一定金钱在一些格子投资. 被投资的格子或者四连通的格子都被投资的话,我就可以获得该格子的收益. 利益最大化是作为商人的基本准则,但这是计算机的任务 ...

  8. GDOI模拟 Zjr506的捕猫计划

    Description Zjr506很喜欢猫,某一天他突然心血来潮,想捕捉学校里活动的猫.为了捕猫,Zjr506在校园中放置了N个木桩,当他见到有猫进入他的狩猎范围后,就会以迅雷不及掩耳的速度在一些木 ...

  9. 2023联考管综论说文阅卷标准及提分计划:附2010-2022年真题

            越是临近黎明,越是黑暗!         距离今年的全国研究生考试只有四十来天,接下来的复习节奏该如何定?对很多考生而言可能已经进入一种混沌状态,不知身在何处.但有一点需要明确,最后的 ...

最新文章

  1. 云智易获上海CIO联盟“年度物联网云平台技术创新奖”
  2. 小米云能导入到华为云吗_小米11值得买吗?小米11和华为Mate40、iPhone 12相比,哪款性价比最高?...
  3. boost::log模块测量转储二进制数据的性能
  4. Entity Framework 5.0系列之约定配置
  5. 密码学系列之:IDEA
  6. android 按钮中断,android – 如何“中断”在AccessibilityService中执行的操作?
  7. 几个高逼格 Linux 命令!
  8. NAT原理?代理服务器原理?
  9. a类怎么引用b类java_Java中A类的数组如何传入B类???急
  10. 2018想要薪资翻倍?你需要掌握这个技能
  11. MySQL存储引擎--MYSIAM和INNODB引擎区别
  12. 关于Kubernetes规划的灵魂N问
  13. Qt 酷炫动画 PictureFlow
  14. 虹科解决方案 | 如何快速解决CAN与CAN FD之间通信的问题
  15. 用u盘进不了pe计算机意外地,u盘装系统启动不了无法进入pe怎么办
  16. java web如何根据用户使用的浏览器来提示用户更新或更换浏览器
  17. python利用tcp搭建小的聊天室带文件传输
  18. OneNET麒麟座应用开发之四:数据上传测试
  19. Python Set 与 dict
  20. 精准医学中的深度学习和影像组学

热门文章

  1. FreeMarker概述
  2. 通过实例分析让您彻底理解NFS协议
  3. 深圳地铁线路大图-PNG格式
  4. PS2 连接SMB(网线连电脑)和连接USB小记
  5. 目标管理的是与非(转载)
  6. Android端CodePush配置
  7. 基于VHDL语言的8路彩灯控制器的设计_kaic
  8. 最新免杀!可过360核晶与Defender(SysWhispers3)
  9. Android进程保活方案的几种方案
  10. Js为什么解除不掉事件绑定?