ZOJhttp://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1914

POJhttp://poj.org/problem?id=2349

UVAhttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1310

题目大意,给定一些点的坐标,求MST,然后要求求去掉最大的k条边后,最大的边

直接Prim,然后在排序即可。

小技巧是一开始不求平方根,最后输出的时候在求出平方根即可。

ZOJ上排行第三,不过在POJ就被虐了。。。

#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int MAXN=501;
const int INF=9999999;
int map[MAXN][MAXN];
double dis[MAXN];
struct point
{
int x,y;
}ship[MAXN]; void prim(int n)
{
int i,j;
for(i=1;i<=n;i++)
dis[i]=INF; bool vis[MAXN]={0}; int cur=1;
vis[cur]=1;
dis[cur]=0; for(i=1;i<=n;i++)
{
double mini=INF;
for(j=1;j<=n;j++)
if(!vis[j] && dis[j] > map[cur][j])
dis[j]=map[cur][j]; for(j=1;j<=n;j++)
if(!vis[j] && mini > dis[j])
mini=dis[cur=j]; vis[cur]=true;
}
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n,x;
scanf("%d%d",&x,&n); int i,j;
for(i=1;i<=n;i++)
scanf("%d%d",&ship[i].x,&ship[i].y); for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
map[i][j]= map[j][i] =
(ship[j].y -ship[i].y) *(ship[j].y -ship[i].y) + (ship[j].x -ship[i].x)*(ship[j].x -ship[i].x);
}
} prim(n); sort(dis+1,dis+n+1);
printf("%.2lf\n",sqrt(dis[n-x+1]));
}
return 0;
}

最新文章

  1. [To do]Appx Package installed, can&#39;t start at first time
  2. UIView动画效果
  3. Codeforces Round #236 (Div. 2) C. Searching for Graph(水构造)
  4. Linux内核配置机制(make menuconfig 、Kconfig、Makefile)讲解【转】
  5. FastDFS安装配置手册
  6. CloudStack API编程指引
  7. 实用的PHP正则表达式
  8. 新秀nginx源代码分析数据结构篇(两) 双链表ngx_queue_t
  9. mybatis使用@param后掉的坑
  10. Swing-JTable的渲染器与编辑器使用demo
  11. 解决`向github提交代码是老要输入用户名密码`
  12. git的个人配置
  13. 网络流二十四题之P2764 最小路径覆盖问题
  14. docker 快速部署ES集群 spark集群
  15. Vue.js货币格式化函数
  16. MYCAT分库分表
  17. Gym101986: Asia Tsukuba Regional Contest(寒假自训第12场)
  18. 【C++程序员学 python】python split and join 分割与合并
  19. python爬虫之Scrapy框架(CrawlSpider)
  20. 面试遇到的mysql面试题

热门文章

  1. 常用的130个vim命令
  2. 洛谷——P1307 数字反转
  3. [Angular &amp; Unit Testing] Testing a RouterOutlet component
  4. 玩转Bash脚本:选择结构之case
  5. actionBar-进入界面闪烁问题解决
  6. read()方法读取的是一个字节,为什么返回是int,而不是byte
  7. 为您的Office文档加把锁-ADRMS的安装
  8. Android 用Socket实现PC和手机的文件传输
  9. CF1009F Dominant Indices(树上DSU/长链剖分)
  10. oracle 日期