这题乍看很吓人,其实就是一个贪心。

每次取最近的两个点所在的块合并,直到只剩下k块,输出答案。

 /**************************************************************
Problem: 1821
User: zhuohan123
Language: C++
Result: Accepted
Time:136 ms
Memory:18492 kb
****************************************************************/ #include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int f[];
int gf(int p){return p==f[p]?p:f[p]=gf(f[p]);}
struct point{double x,y;}p[];
double dis(point a,point b){return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);}
struct edge
{
int from,to;double c;
friend bool operator<(edge a,edge b){return a.c<b.c;}
}g[];int gnum;
int main(int argc, char *argv[])
{
int n,k;scanf("%d%d",&n,&k);
for(int i=;i<=n;i++)scanf("%lf%lf",&p[i].x,&p[i].y);
for(int i=;i<=n;i++)f[i]=i;
for(int i=;i<=n;i++)
for(int j=;j<i;j++)
{
g[++gnum].from=i;
g[gnum].to=j;
g[gnum].c=dis(p[i],p[j]);
}
sort(g+,g+gnum+);
for(int i=;i<=gnum;i++)
if(gf(g[i].from)!=gf(g[i].to))
{
if(n>k){f[gf(g[i].from)]=gf(g[i].to);n--;}
else {printf("%0.2lf\n",sqrt(g[i].c));return ;}
}
printf("0.00\n");
return ;
}

BZOJ1821: [JSOI2010]Group 部落划分的更多相关文章

  1. [BZOJ1821][JSOI2010]Group 部落划分 Group 最小生成树 贪心

    1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2943  Solved: 1390[S ...

  2. [Bzoj1821][JSOI2010]Group 部落划分 Group(并查集)(二分答案)

    1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2949  Solved: 1392[S ...

  3. 【最小生成树+贪心】BZOJ1821: [JSOI2010]Group 部落划分 Group

    Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗.只是,这一切都成 ...

  4. BZOJ1821 [JSOI2010]Group 部落划分 Group 【最小生成树】

    题目 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗.只是,这一切都成为谜团了--聪聪根 ...

  5. BZOJ1821 [JSOI2010]Group 部落划分 Group Kruskal

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1821 题意概括 平面上有n个点,现在把他们划分成k个部分,求不同部分之间最近距离的最大值. 两个部 ...

  6. bzoj1821: [JSOI2010]Group 部落划分 Group

    kruskal算法. #include<cstdio> #include<algorithm> #include<cstring> #include<cmat ...

  7. 1821: [JSOI2010]Group 部落划分 Group

    1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1308  Solved: 627[Su ...

  8. BZOJ_[JSOI2010]Group 部落划分 Group_kruskal

    BZOJ_[JSOI2010]Group 部落划分 Group_kruskal Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人 ...

  9. 洛谷 1821: [JSOI2010]Group 部落划分 Group

    1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2596  Solved: 1221[S ...

随机推荐

  1. STM32F4_RCC系统时钟配置及描述

    Ⅰ.概述 对于系统时钟应该都知道它的作用,就是驱动整个芯片工作的心脏,如果没有了它,就等于人没有了心跳. 对于使用开发板学习的朋友来说,RCC系统时钟这一块知识估计没怎么去配置过,原因在于开发板提供的 ...

  2. 刀哥多线程之gcd-01-sync&async

    同步 & 异步 概念 同步 必须等待当前语句执行完毕,才会执行下一条语句 异步 不用等待当前语句执行完毕,就可以执行下一条语句 NSThread 中的 同步 & 异步 - (void) ...

  3. javascript 关于Date 时间类型 处理方法

    上一篇博客中和大家分享了关于 字符串转时间类型 这一篇顺便整理下 javascript 中 Date 类型的一些方法 var time = new Date(); var year=time.getY ...

  4. Oracle Imp and Exp (导入和导出) 数据 工具使用

    Oracle 提供两个工具imp.exe 和exp.exe分别用于导入和导出数据.这两个工具位于Oracle_home/bin目录下. 导入数据exp 1 将数据库ATSTestDB完全导出,用户名s ...

  5. ZygoteInit 相关分析

    上一篇文章我们已经分析到调用com.android.internal.os.ZygoteInit类的main函数. 今天分析一下com.android.internal.os.ZygoteInit类的 ...

  6. OpenStack:安装Horizon

    1. 安装:# apt-get install memcached libapache2-mod-wsgi openstack-dashboard!Note for Ubuntu users# apt ...

  7. 十一、从头到尾彻底解析Hash 表算法

    在研究MonetDB时深入的学习了hash算法,看了作者的文章很有感触,所以转发,希望能够使更多人受益! 十一.从头到尾彻底解析Hash 表算法 作者:July.wuliming.pkuoliver  ...

  8. 一位iOS教育类应用开发者是如何赚到60多万美元?

    注:伯乐在线12月19日在@程序员的那些事 微博推荐了此文的英文原文,非常感谢@dotSlash 的翻译.  转眼距我写<我如何在iOS教育类应用中赚到20万美元>这篇博文已经一年多了,它 ...

  9. Nginx + django windows下配置

    1.下载nginx, 去http://nginx.org/en/download.html 下载,我下载的是1.8 stable版本. 2.配置文件/conf/nginx.conf #user nob ...

  10. Filter介绍

    Filter可人为是Servlet的一种“加强版”,它重要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链.使用Filter的完整的流程是:Filt ...