BZOJ_1821_[JSOI2010]_部落划分_(贪心,并查集)
描述
http://www.lydsy.com/JudgeOnline/problem.php?id=1821
给出n个点的坐标,将n个点划分成k个部分,使得每个部分之间最小的距离最大.
分析
每两个点之间建边,然后从小到到排序.要让最小距离最大,就把小的距离用在每个部分内部,所以从小的边开始合并,直到合并为k个部分为止.
#include <bits/stdc++.h>
using namespace std; const int maxn=+;
int n,k;
int f[maxn];
struct node{ int x,y; }a[maxn];
struct edge{
int x,y,w;
edge(){}
edge(int x,int y,int w):x(x),y(y),w(w){}
bool operator < (const edge &a)const { return w<a.w; }
}e[maxn*maxn];
inline int find(int x){ return x==f[x]?f[x]:f[x]=find(f[x]); }
inline int dis(node a,node b){ return pow(a.x-b.x,)+pow(a.y-b.y,); }
int main(){
scanf("%d%d",&n,&k);
for(int i=;i<=n;i++) f[i]=i;
for(int i=;i<=n;i++) scanf("%d%d",&a[i].x,&a[i].y);
int cnt=;
for(int i=;i<=n;i++)for(int j=i+;j<=n;j++) e[++cnt]=edge(i,j,dis(a[i],a[j]));
sort(e+,e+cnt+);
for(int i=;i<=cnt;i++){
int fx=find(e[i].x),fy=find(e[i].y);
if(fx!=fy){
if(n>k) n--, f[fx]=fy;
else{
printf("%.2lf\n",sqrt(e[i].w));
break;
}
}
}
return ;
}
1821: [JSOI2010]Group 部落划分 Group
Time Limit: 10 Sec Memory Limit: 64 MB
Submit: 1791 Solved: 862
[Submit][Status][Discuss]
Description
聪
聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则
经常发生争斗。只是,这一切都成为谜团了——聪聪根本就不知道部落究竟是如何分布的。
不过好消息是,聪聪得到了一份荒岛的地图。地图上标注了N个野人居住的地点(可以看作是平面上的坐标)。我们知道,同一个部落的野人总是生活在附近。我们
把两个部落的距离,定义为部落中距离最近的那两个居住点的距离。聪聪还获得了一个有意义的信息——这些野人总共被分为了K个部落!这真是个好消息。聪聪希
望从这些信息里挖掘出所有部落的详细信息。他正在尝试这样一种算法:
对于任意一种部落划分的方法,都能够求出两个部落之间的距离,聪聪希望求出一种部落划分的方法,使靠得最近的两个部落尽可能远离。
例如,下面的左图表示了一个好的划分,而右图则不是。请你编程帮助聪聪解决这个难题。
Input
Output
输出一行,为最优划分时,最近的两个部落的距离,精确到小数点后两位。
Sample Input
0 0
0 1
1 1
1 0
Sample Output
HINT
Source
BZOJ_1821_[JSOI2010]_部落划分_(贪心,并查集)的更多相关文章
- [Bzoj1821][JSOI2010]Group 部落划分 Group(并查集)(二分答案)
1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2949 Solved: 1392[S ...
- [BZOJ1821][JSOI2010]Group 部落划分 Group 最小生成树 贪心
1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2943 Solved: 1390[S ...
- 洛谷 1821: [JSOI2010]Group 部落划分 Group
1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2596 Solved: 1221[S ...
- 1821: [JSOI2010]Group 部落划分 Group
1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1308 Solved: 627[Su ...
- BZOJ_[JSOI2010]Group 部落划分 Group_kruskal
BZOJ_[JSOI2010]Group 部落划分 Group_kruskal Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人 ...
- POJ 1456 Supermarket(贪心+并查集)
题目链接:http://poj.org/problem?id=1456 题目大意:有n件商品,每件商品都有它的价值和截止售卖日期(超过这个日期就不能再卖了).卖一件商品消耗一个单位时间,售卖顺序是可以 ...
- 【BZOJ】1821: [JSOI2010]Group 部落划分 Group(最小生成树+贪心)
http://www.lydsy.com:808/JudgeOnline/problem.php?id=1821 这题裸题. 本题要求最短距离最长,很明显,我们排序. 这里存在贪心,即我们把边权最小的 ...
- 【最小生成树+贪心】BZOJ1821: [JSOI2010]Group 部落划分 Group
Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗.只是,这一切都成 ...
- [bzoj1821][JSOI2010]部落划分(贪心)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1821 分析:题目看起来很吊,但只要贪心就行了,每次取相邻最近的两个点所在的集合合并知道 ...
随机推荐
- sicily 1200欢迎提出优化方案
水题来的……我的做法是用a[10]数组表示每个数字出现的次数. 1200. Stick 限制条件 时间限制: 1 秒, 内存限制: 32 兆 题目描述 Anthony has collected a ...
- centos6.5 安装python2.7.5
1. 下载python2.7.5,保存到 /data/http://www.python.org/ftp/python/ 2. 解压文件tar xvf Python-2.7.5.tar.bz2 3. ...
- WebClient以POST方式发送Web请求
本例使用WebClient以POST方式发送Web请求并下载一个文件,难点是postData的构造,发送Web请求时有的网站要求可能要求 Cookies前后一致.其中application/x-www ...
- rsync+inotity
rsync默认端口:873xinetd默认服务 inotify参数详解inotifywait-r:递归-q:只打印事件-m:始终监听事件--excludei:排除--timefmt:时间格式--for ...
- JavaScript的事件监听、捕获和冒泡
在前端开发中,我们经常需要对某些事件进行监听.这样只要在指定的元素上触发了该事件,就会执行一个回调函数来进行相关的操作. 而JavaScript中事件监听的方法总共有三种,分别如下: element. ...
- js之replace实现简单模板替换引擎
eg: var app={}; app.tempEngine= (function () { var pattern = /\{(\w*[:]*[=]*\w+)\}(?!})/g; return ...
- 还原数据库备份文件时,关于“System.Data.SqlClient.SqlError:媒体集有2个媒体簇,但只提供了1个。必须提供所有成员”的处理方式
好久没写博客了,最近在做毕设的权限管理模块,今天在还原数据库文件时,遇到了“System.Data.SqlClient.SqlError:媒体集有2个媒体簇,但只提供了1个.必须提供所有成员”这个错误 ...
- PHP+Ajax 异步通讯注册验证
HTML代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...
- AppExtention - today
声明: 本文转自王巍 WWDC 2014 Session笔记 - iOS 通知中心扩展制作入门 本文是我的 WWDC 2014 笔记 中的一篇,涉及的 Session 有 Creating Exten ...
- SpringMVC+Hibernate架构save方法事务未提交
今天同事遇到一个问题,一起研究,最后解决,让我对spring的事务管理又加深了印象. 先简单说一下项目:项目是Spring和Hibernate集成的JavaEE项目,MVC架构. 外包在service ...