BZOJ 1821 JSOI2010 部落划分 Group prim
Description
Input
Output
Sample Input
4 2
0 0
0 1
1 1
1 0
Sample Output
1.00
题解
最小生成树求第K大边
代码
#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <queue>
#include <typeinfo>
#include <map>
#include <stack>
typedef long long ll;
#define inf 0x7fffffff
using namespace std;
inline ll read()
{
ll x=,f=;
char ch=getchar();
while(ch<''||ch>'')
{
if(ch=='-')f=-;
ch=getchar();
}
while(ch>=''&&ch<='')
{
x=x*+ch-'';
ch=getchar();
}
return x*f;
} //**************************************************************************************
double mp[][];
double lowcost[];
int used[];
int n;
int k;
int kk;
double ans[];
void prim()
{
int x=;
double mn;
memset(used,,sizeof(used));
memset(lowcost,,sizeof(lowcost));
for(int i=;i<=n;i++)
lowcost[i]=mp[x][i];
used[x]=;
for(int i=;i<=n;i++)
{
mn=inf*1.0;
for(int j=;j<=n;j++)
{
if(!used[j]&&lowcost[j]<mn)
{
x=j;
mn=lowcost[j];
}
}
ans[++kk]=mn;
used[x]=;
for(int j=;j<=n;j++)
{
if(!used[j]&&mp[x][j]<lowcost[j])
lowcost[j]=mp[x][j];
}
}
}
int main()
{
double x[];
double y[];
scanf("%d%d",&n,&k);
for(int i=;i<=n;i++)
{
scanf("%lf%lf",&x[i],&y[i]); }
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
if(i==j)mp[i][j]=;
else
{
mp[i][j]=sqrt((y[i]-y[j])*(y[i]-y[j])+(x[i]-x[j])*(x[i]-x[j]));
}
}
}
kk=;
prim();
sort(ans+,ans++kk);
printf("%.2f\n",ans[kk-k+]);
return ;
}
BZOJ 1821 JSOI2010 部落划分 Group prim的更多相关文章
- 1821: [JSOI2010]Group 部落划分 Group
1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1308 Solved: 627[Su ...
- 洛谷 1821: [JSOI2010]Group 部落划分 Group
1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2596 Solved: 1221[S ...
- [BZOJ1821][JSOI2010]Group 部落划分 Group 最小生成树 贪心
1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2943 Solved: 1390[S ...
- [Bzoj1821][JSOI2010]Group 部落划分 Group(并查集)(二分答案)
1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2949 Solved: 1392[S ...
- 【BZOJ1821】[JSOI2010]部落划分(二分,并查集)
[BZOJ1821][JSOI2010]部落划分(二分,并查集) 题面 BZOJ 洛谷 题解 二分答案,把距离小于二分值的点全部并起来,\(\mbox{check}\)一下是否有超过\(K\)个集合就 ...
- 洛谷P4047 [JSOI2010]部落划分题解
洛谷P4047 [JSOI2010]部落划分题解 题目描述 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落 ...
- P4047 [JSOI2010]部落划分 方法记录
原题链接 [JSOI2010]部落划分 题目描述 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常 ...
- 【BZOJ】1821: [JSOI2010]Group 部落划分 Group(最小生成树+贪心)
http://www.lydsy.com:808/JudgeOnline/problem.php?id=1821 这题裸题. 本题要求最短距离最长,很明显,我们排序. 这里存在贪心,即我们把边权最小的 ...
- 【BZOJ 1821】 [JSOI2010]Group 部落划分 Group
Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗.只是,这一切都成 ...
随机推荐
- Android文件保存和读取
public class DataActivity extends Activity { private EditText filenameText; private EditText content ...
- Jni中C++和Java的参数传递 参数对照
Jni中C++和Java的参数传递 如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对Jni不甚了解,不知道Jni是做什么的,如何建立一个基本的jni程序,或许可以参考下面下面这些文章:利用V ...
- Java中Comparable和Comparator实现对象比较
1.通过Comparable实现排序 package Comparable; import java.util.Arrays; public class ComparableUser implemen ...
- 转 XenServer、XenCenter安装测试
本文转自:http://blog.sina.com.cn/s/blog_5611597901014ze4.html 系统环境:win7 64bit vmware-8.0.1 镜像文件:XenServ ...
- 开启Mysql远程访问的所有方法
开启Mysql远程访问的所有方法 http://superyjcqw.blog.163.com/blog/static/16105830520117111040436/ Mysql默认是不可以通过远程 ...
- C# 我理解的接口、抽象类、以及事件
一.摘要 面试中无数次被问及到什么是接口,什么是抽象类,接口和抽象类有什么区别?什么是委托,什么是事件. 请写出猫叫了,老鼠跑了的例子..... 这些东西对于一些初学者来说可能还真的有点搞不懂,对于一 ...
- [转]linux awk命令详解
原文链接 : http://blog.chinaunix.net/uid-23302288-id-3785105.html awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢 ...
- JSONKit 简单使用
http://blog.csdn.net/l_ch_g/article/details/8477187 例子上写的比较浅显易懂, 不过我还是稍微总结一下: 导入JSONKit.h之后 字符串转NSDi ...
- Python机器学习库scikit-learn实践
原文:http://blog.csdn.net/zouxy09/article/details/48903179 一.概述 机器学习算法在近几年大数据点燃的热火熏陶下已经变得被人所“熟知”,就算不懂得 ...
- Unable to mount the CD/DVD image virtualbox解决方法
转自: http://askubuntu.com/questions/321589/unable-to-mount-the-cd-dvd-image-on-the-machine-sandbox