Zjr506的捕猫计划
来源:互联网 发布:科比生涯数据场均 编辑:程序博客网 时间:2024/04/27 02:29
题目描述
Zjr506很喜欢猫,某一天他突然心血来潮,想捕捉学校里活动的猫。
为了捕猫,Zjr506在校园中放置了N个木桩,当他见到有猫进入他的狩猎范围后,就会以迅雷不及掩耳的速度在一些木桩之间绕上藩篱以困住这些猫。
一段时间后,Zjr506在绕了M个藩篱后兴高采烈的离开了。作为正义的使者,Ztxz16不忍心看到这些猫受到折磨,于是决定拆除一些藩篱让所有的猫都逃出去。因为Zjr506的巧妙设计,藩篱不会在除木桩之外的地方相交。这些藩篱构成了一些封闭的区域,每一个区域中都有一只猫。
因为Zjr506制造这些藩篱也不容易,所以Ztxz16希望拆除的藩篱总长度尽量小,现在他希望你告诉他最小的总长度。
数据范围
N <= 10000, M <= 50000
题目描述是有问题的,有一种特殊情况即一个藩篱经过不止两个木桩,可以是三个四个,因为题目仅仅说明藩篱不会在除木桩之外的地方相交。除去这种情况,题解的做法就是对的。
那么考虑要拆除一些藩篱,使图中不在任何环,也就是说删完藩篱后的图会成为一棵树,那么我们只要做一遍最大生成树即可。
代码
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;const int maxn=10000+5;const int maxm=50000+5;int i,j,f[maxn],n,m;double sum;struct ar{ int x,y;double d;}b[maxm],z[maxn];bool cmp(ar x,ar y){ return x.d>y.d;}double sqr(int x){ double a=x; return a*a;}int get(int x){ if (f[x]==0) return x; return f[x]=get(f[x]);}int main(){ scanf("%d%d",&n,&m); fo(i,1,n) scanf("%d%d",&z[i].x,&z[i].y); fo(i,1,m){ scanf("%d%d",&b[i].x,&b[i].y); int x=b[i].x,y=b[i].y; b[i].d=sqr(z[x].x-z[y].x)+sqr(z[x].y-z[y].y); b[i].d=sqrt(b[i].d); sum+=b[i].d; } sort(b+1,b+1+m,cmp); fo(i,1,m){ int x=b[i].x,y=b[i].y; x=get(x),y=get(y); if (x!=y){ sum-=b[i].d; f[x]=y; } } printf("%.5lf\n",sum);}
0 0
- Zjr506的捕猫计划
- GDOI模拟 Zjr506的捕猫计划
- 【雅礼联考GDOI2017模拟】Zjr506的捕猫计划
- 2018.8.19总结3-Zjr506的捕猫计划
- jzoj 4740. 【雅礼联考GDOI2017模拟9.2】Zjr506的捕猫计划 最大生成树
- 【雅礼联考GDOI2017模拟9.2】Zjr506的捕猫计划
- JZOJ 4740 【雅礼联考GDOI2017模拟9.2】Zjr506的捕猫计划
- JZOJ4740. 【雅礼联考GDOI2017模拟9.2】Zjr506的捕猫计划(2017.8B组)
- JZOJsenior4740.【雅礼联考GDOI2017模拟9.2】Zjr506的捕猫计划
- 2017.08.19【NOIP提高组】模拟赛B组 【雅礼联考GDOI2017模拟】Zjr506的捕猫计划
- JZOJ 4740 捕猫计划
- 捕野鸡的领悟
- 老人捕野猪的故事
- 捕到石头的渔夫
- Python的捕虫笔记
- Wireshark捕不到无线网卡的包的解决办法
- 网易云捕:iOS的崩溃收集系统
- 给libpcap增加一个新的捕包方法
- centos之lamp
- 【金融干货】四步教你:开发风控模型?
- 加载图片到Head中 分为 加载网上和本地的图片的方法
- 产品为何总是做不好 (五): 头痛医头,脚痛医脚
- classify.py skimage error: ValueError: can not convert object to float64
- Zjr506的捕猫计划
- 再看Java--imooc三季Java视频笔记
- 文章标题
- Ubuntu Server安装图形界面全过程
- 一篇很全面的freemarker教程
- Android中通过Cache机制获取View的绘图层
- Retrofit 2.0 官方文档
- react native 开发基础=javaScript=学习笔记----函数
- Css3方法的等分