BZOJ1821_Group部落划分_KEY
这是一道并查集的题目,相信很多人都看出来了。
用一个类似Kurskal的东西求出最近的最大值。
对于一些可以划分在同一个部落里的边,我们一定是优先选择短边合并。
code:
/**************************************************************
Problem: 1821
User: yekehe
Language: C++
Result: Accepted
Time:432 ms
Memory:9136 kb
****************************************************************/ #include <bits/stdc++.h>
using namespace std;
int a[],b[];
int n,k,now,fa[];
double p(double x1,double x2,double y1,double y2){
return (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
}
double w[];
struct node{
int x,y;
double c;
}l[];
inline int cmp(node x,node y){return x.c<y.c;}
int getf(int x){return x==fa[x]?x:fa[x]=getf(fa[x]);}
int main(){
scanf("%d%d",&n,&k);
for(int i=;i<=n;i++)
scanf("%d%d",&a[i],&b[i]);
for(int i=;i<=n;i++)
for(int j=i+;j<=n;j++)
l[++now].x=i,l[now].y=j,l[now].c=p(a[i],a[j],b[i],b[j]);
sort(l+,l+now+,cmp);
for(int i=;i<=n;i++)fa[i]=i;
int ans=,i;
for(i=;i<=now;i++){
int x=getf(l[i].x),y=getf(l[i].y),c=l[i].c;
if(x!=y){
fa[x]=y;
w[++ans]=c;
if(ans==n-)break;
}
}
printf("%.2lf",sqrt(w[n-k+]));
return ;
}
BZOJ1821_Group部落划分_KEY的更多相关文章
- 【JSOI2010】Group 部落划分 BZOJ 1821
1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec Memory Limit: 64 MB 聪聪研究发现,荒岛野人总是过着群居的生活,但是 ...
- C++之路进阶——bzoj1821(部落划分)
F.A.Qs Home Discuss ProblemSet Status Ranklist Contest ModifyUser hyxzc Logout 捐赠本站 Notice:1:由于本OJ建 ...
- BZOJ 1821 JSOI2010 部落划分 Group prim
Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗.只是,这一切都成 ...
- 【BZOJ】1821: [JSOI2010]Group 部落划分 Group(最小生成树+贪心)
http://www.lydsy.com:808/JudgeOnline/problem.php?id=1821 这题裸题. 本题要求最短距离最长,很明显,我们排序. 这里存在贪心,即我们把边权最小的 ...
- 【BZOJ 1821】 [JSOI2010]Group 部落划分 Group
Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗.只是,这一切都成 ...
- BZOJ_1821_[JSOI2010]_部落划分_(贪心,并查集)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1821 给出n个点的坐标,将n个点划分成k个部分,使得每个部分之间最小的距离最大. 分析 每两个 ...
- 1821: [JSOI2010]Group 部落划分 Group
1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1308 Solved: 627[Su ...
- 【最小生成树+贪心】BZOJ1821: [JSOI2010]Group 部落划分 Group
Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗.只是,这一切都成 ...
- BZOJ_[JSOI2010]Group 部落划分 Group_kruskal
BZOJ_[JSOI2010]Group 部落划分 Group_kruskal Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人 ...
随机推荐
- Entity Framework: 主从表的增删改
1.根据主表添加从表数据 var dest = (from d in context.Destinations where d.Name == "Bali" select d).S ...
- windows 安装redis并注册服务
windows下载地址 https://github.com/MSOpenTech/redis/releases 启动:redis-server redis.windows.conf ...
- php------中文出现乱码解决方法
中文出现乱码解决方法:原因编码格式不一致 [1] 建立数据库的时候,字符集选择utf-8 数据库,点表名,点右键,数据库属性…. [2] 修改myspl的配置,在[myspld]模块下面添加ch ...
- JavaScript小游戏--翻牌记忆游戏
翻牌记忆游戏源码 1.有8张图片,每张图片要放两次,生成如下数组,长为16,[0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7] 其中两两相同的代表两张相同的图片,0对应文件夹image ...
- centos7 python3.5安装mysqlclient1.3.9
MySQL-python目前不支持python3.5,可以使用mysqlclient 下载地址:https://pypi.python.org/pypi/mysqlclient/1.3.9 解压后进入 ...
- 十、IntelliJ IDEA 中 Project 和 Module 的概念及区别
在 IntelliJ IDEA 中,没有类似于 Eclipse 工作空间(Workspace)的概念,而是提出了Project和Module这两个概念.接下来,就让咱们一起看看 IntelliJ ID ...
- 关于JavaScript中省略元素对数组长度的影响
在学习<JavaScript权威指南>第六版的第7.1节中通过数组直接量创建数组时,我们可以不给数组的某个元素赋值,它就会使undefined.虽然是undefined,但我们调用数组对象 ...
- 设计模式——责任链(chain of responsibiltiy)
责任链模式在面向对象程式设计里是一种软件设计模式,它包含了一些命令对象和一系列的处理对象. 每一个处理对象决定它能处理哪些命令对象,它也知道如何将它不能处理的命令对象传递给该链中的下一个处理对象.也就 ...
- [转]SQL Server 安全性概論與無法刪除資料庫使用者的解決辦法
經常有人來問我特定 SQL Server 資料庫裡的使用者無法刪除的問題,這問題其實跟 SQL Server 的安全性架構有很大關係,解決這個問題當然還是瞭解觀念的重要性大於知道如何解決問題.除了講解 ...
- Network Security Threats
Network Security Combination of low-cost powerful computing and high-performance networks is a two-e ...