ZOJ 1914 Arctic Network (POJ 2349 UVA 10369) MST
2024-08-24 22:52:55
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;
}
最新文章
- [To do]Appx Package installed, can&#39;t start at first time
- UIView动画效果
- Codeforces Round #236 (Div. 2) C. Searching for Graph(水构造)
- Linux内核配置机制(make menuconfig 、Kconfig、Makefile)讲解【转】
- FastDFS安装配置手册
- CloudStack API编程指引
- 实用的PHP正则表达式
- 新秀nginx源代码分析数据结构篇(两) 双链表ngx_queue_t
- mybatis使用@param后掉的坑
- Swing-JTable的渲染器与编辑器使用demo
- 解决`向github提交代码是老要输入用户名密码`
- git的个人配置
- 网络流二十四题之P2764 最小路径覆盖问题
- docker 快速部署ES集群 spark集群
- Vue.js货币格式化函数
- MYCAT分库分表
- Gym101986: Asia Tsukuba Regional Contest(寒假自训第12场)
- 【C++程序员学 python】python split and join 分割与合并
- python爬虫之Scrapy框架(CrawlSpider)
- 面试遇到的mysql面试题
热门文章
- 常用的130个vim命令
- 洛谷——P1307 数字反转
- [Angular &; Unit Testing] Testing a RouterOutlet component
- 玩转Bash脚本:选择结构之case
- actionBar-进入界面闪烁问题解决
- read()方法读取的是一个字节,为什么返回是int,而不是byte
- 为您的Office文档加把锁-ADRMS的安装
- Android 用Socket实现PC和手机的文件传输
- CF1009F Dominant Indices(树上DSU/长链剖分)
- oracle 日期