【2018.5.19】模拟赛之四-ssl2435 航空公司【并查集,二分】

正题


题目大意

有n个点,给出坐标,选择所有距离在k之内的边要求联通所有点,求最小的k。


解题思路

垃圾解法

用二分答案然后加并查集求是否联通。
时间复杂度:O(mlogn)O(mlogn)

正解

按距离排序,然后连边到所有岛都联通为止。
时间复杂度:O(mlogm)O(mlogm)


垃圾解法的代码

#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
struct node{int from,to;double w;
}a[1000001];
int n,dx[1001],dy[1001],dr[1001],father[1001],s,tot;
double dis(double x1,double y1,double x2,double y2)
{return sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
}//求距离
bool cmp(node xxx,node yxx)//排序
{return xxx.w<yxx.w;}
int find(int x)//并查集
{return father[x]==x?x:father[x]=find(father[x]);}
void unionn(int x,int y)//并查集
{int fa=find(x),fb=find(y);if (fa==fb) return;else{if (fa<fb) father[fb]=fa;else father[fa]=fb;s--;}
}
bool check(double ll){//判断可否联通for (int i=1;i<=n;i++)father[i]=i;s=n;for (int i=1;i<=tot;i++)if(ll<a[i].w) return false;else{unionn(a[i].from,a[i].to);if (s==1) return true;}return false;
}
int main()
{scanf("%d",&n);for (int i=1;i<=n;i++)scanf("%d%d%d",&dx[i],&dy[i],&dr[i]);for (int i=1;i<n;i++)for (int j=i+1;j<=n;j++){a[++tot].from=i;a[tot].to=j;double lw=dis(dx[i],dy[i],dx[j],dy[j])-dr[i]-dr[j];a[tot].w=lw;if (a[tot].w<0) a[tot].w=0;//输入}sort(a+1,a+1+tot,cmp);int l=1,r=2000,mid;while (l<=r)//二分{mid=(l+r)/2;if (check((double)mid)) r=mid-1;else l=mid+1;}printf("%d",l);
}

对拍

数据生成

#include<cstdio>
#include<cstdlib>
#include<ctime>
#define random(x) rand()*rand()%x+1
using namespace std;
int n,m;
int main()
{freopen("air.in","w",stdout);srand((unsigned)time(0));n=random(1000);//n=1000;printf("%d\n",n);for (int i=1;i<=n;i++){printf("%d %d %d\n",random(1000),random(1000),random(5));}
}

判断加对拍

#include<cstdio>
#include<cstdlib>
#include<ctime>
#include<cmath>
using namespace std;
int n,dx[1001],dy[1001],dr[1001],father[1001],s,l;
bool ok;
double dis(double x1,double y1,double x2,double y2)
{return sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
}
int find(int x)
{return father[x]==x?x:father[x]=find(father[x]);}
void unionn(int x,int y)
{int fa=find(x),fb=find(y);if (fa==fb) return;else{if (fa<fb) father[fb]=fa;else father[fa]=fb;s--;}
}
int main()
{for (int ti=1;ti<=10000;ti++){system("airdata.exe");double st=clock();system("air.exe");double ed=clock();if (ed-st>1000){printf("TLE");break;}freopen("air.in","r",stdin);scanf("%d",&n);for (int i=1;i<=n;i++)scanf("%d%d%d",&dx[i],&dy[i],&dr[i]);fclose(stdin);freopen("air.out","r",stdin);scanf("%d",&l);s=n;ok=false;for (int i=1;i<=n;i++)father[i]=i;for (int i=1;i<=n;i++){for (int j=1;j<=n;j++){double lw=dis(dx[i],dy[i],dx[j],dy[j])-dr[i]-dr[j];if (lw<=l){unionn(i,j);}if (s==1) ok=true;}if (s==1) ok=true;}if (s!=1){printf("WA");break;}fclose(stdin);printf("AC point:%d time:0.%0.lf\n",ti,ed-st);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javafx爬取网页并且初始化网页数据

一、需求场景 编写爬虫爬取网页的信息&#xff0c;而网页的信息经常是未初始化&#xff0c;没有办法获取网页的数据信息。 网页加载数据有两种类型&#xff1a;第一种是网页请求回来&#xff0c;数据已经加载好了&#xff1b;第二种是网页的数据信息还没有初始化&#xff0c;…

layui结合ajax实现下拉联动效果

大家好好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号&#xff1a;雄雄的小课堂。 昨天分享的是使用layui集合springboot实现图片上传&#xff0c;文章地址在这里&#xff0c;需要的小伙伴们可以去看看&#xff1a; 今天给大家分享的内容也是那天在造项目的时候完成的&am…

ASP.NET Core MVC – Caching Tag Helpers

简介 缓存可以大大提高应用程序加载时间和响应速度。我们可以使用缓存Tag Helpers缓存不会频繁更改的HTML内容。 在上一篇文章ASP.NET Core MVC Tag Helpers 介绍中&#xff0c;我们谈到了Tag Helpers&#xff0c;演示Tag Helpers能做什么、如何使用它们以及一些最常用的Tag …

ssl初一组周六模拟赛【2018.5.19】

前言 先说一下成绩&#xff1a; 姓名成绩xxy260wyc240lrz220lw180hjq140hzb120zyc80xjq去领奖了&#xff08;数独王八吧&#xff09; 正题 题目1&#xff1a;ssl2432 面积最大【数学】 恩…似乎是很简单&#xff0c;可以就是很难&#xff0c;有坑 链接&#xff1a; https…

Javafx的WebEngine的url加载不输出结果坑,gc回收了局部变量

一、坑场景复现 源于w3cschool的JavaFX WebEngine测试例子&#xff0c;运行代码都没有输出&#xff0c;一直在研究为什么会出现这样的结果。 在测试过程中使用WebEngine的html加载&#xff0c;使用WebEngine的url加载&#xff0c;使用WebView加载url&#xff0c;使用仅Scene装…

layui结合ajax实现下拉菜单联动效果

大家好好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号&#xff1a;雄雄的小课堂。昨天分享的是使用layui集合springboot实现图片上传&#xff0c;文章地址在这里&#xff0c;需要的小伙伴们可以去看看&#xff1a;今天给大家分享的内容也是那天在造项目的时候完成的&#x…

ASP.NET Core 源码学习之 Options[4]:IOptionsMonitor

前面我们讲到 IOptions 和 IOptionsSnapshot&#xff0c;他们两个最大的区别便是前者注册的是单例模式&#xff0c;后者注册的是 Scope 模式。而 IOptionsMonitor 则要求配置源必须是可监听的&#xff0c;用来实现 Options 实例的自动更新&#xff0c;并对外提供了 OnChage 事件…

P1967,ssl2267-货车运输【树上倍增LCA,最小生成树变形kruskal】

正题 题目链接&#xff1a; https://www.luogu.org/problemnew/show/P1967 大意 一个无向图&#xff0c;每个边有个权值&#xff0c;若干个询问&#xff0c;求两个点之间的一条最短路是这条最短路上的最小权值最大。 解题思路 首先我们发现其实每两个点之间留一条路径就好了…

易百教程——JavaFX教程

转载自 易百教程——JavaFX教程 JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API&#xff0c;我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序。JavaFX通过硬件加速图形支持现代GPU。 JavaFX允许开发人…

Springboot 2.x 单元测试 JUnit 5

https://www.cnblogs.com/xiaomaomao/p/14307749.html

Layui hint: Table element property lay-data configuration item has a syntax error解决方式

今天在使用layui的数据表格时&#xff0c;报错Layui hint: Table element property lay-data configuration item has a syntax error&#xff0c;找了好几中解决方式&#xff0c;网上说的用{}括起来。 对于我来说都不适应哎&#xff0c;我发现我的问题比较低级。 源代码&…

ASP.NET Core MVC – Form Tag Helpers

简介 我们已经介绍过Tag Helpers以及一些最常用的Tag Helpers&#xff0c;也谈到了缓存Tag Helpers。在这篇文章中&#xff0c;我们将讨论表单Tag Helpers。 HTML或Web表单通过使用各种HTML元素用于收集来自用户的输入&#xff0c;如输入框、复选框、单选按钮、下拉列表等。使…

POJ2752-Seek the Name, Seek the Fame【KMP】

正题 题目链接&#xff1a; http://poj.org/problem?id2752 大意 一个字符串&#xff0c;求所有的前缀等于后缀的长度 解题思路 用KMP求出Next数组。然后最大的那个肯定是长度&#xff0c;然后让jl&#xff0c;之后每次jnext[j]&#xff0c;直到j<0。 这里讲解一下原理…

表单提交报错405的解决方式

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号&#xff1a;雄雄的小课堂。今天&#xff0c;分享一个bug的解决的方法&#xff0c;到最后解决了也不知道为啥这样是可以的&#xff0c;原来的方法是不可以的……01问题描述项目中有这样的一个需求&#xff0c;就是在原来的…

JavaFX图表(二)之饼图

翻译自 JavaFX - 饼图 饼图是将值表示为具有不同颜色的圆的切片。标记这些切片&#xff0c;并且在图表中表示与每个切片对应的值。 以下是一张饼图&#xff0c;描绘了一个实例中各公司的移动销售情况。 在JavaFX中&#xff0c;饼图由名为PieChart的类表示。该类属于包javaf…

RabbitMQ(mall项目学习 死信、延迟队列)

文章目录RabbitMQ的死信队列RabbitMQ的延迟队列mall项目 业务场景说明Rabbitmq 插件实现延迟队列启动&#xff08; UI 界面 &#xff09;RabbitMQ的死信队列 TTL&#xff1a;time to live 消息存活时间 如果消息在存活时间内未被消费&#xff0c;则会被清除 RabbitMQ⽀持两种…

asp.net中条件查询+分页

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号&#xff1a;雄雄的小课堂。 今天&#xff0c;分享的是asp.net中条件查询分页的小案例。 如下图所示&#xff1a; 各个功能模块均已标注&#xff0c;先大致介绍一下业务。 \1. 点击左侧图书类别&#xff0c;根绝类别编…

POJ2406-Power Strings【KMP】

正题 链接&#xff1a; http://poj.org/problem?id2406 大意 一个字符串&#xff0c;求最小循环节。 解题思路 用KMP求循环节。 因为如果有循环节那么一定是l-next[l]。只需要判断一下l-next[l]是否可以被l整除就好了 代码 #include<cstdio> #include<cstring&…

.NET Standard@Xamarin.Forms

编者语 &#xff1a; .NET技术社群由于微软的开源和跨平台性越来越受关注&#xff0c;但国内都是碍于大家以往的认识阻碍了发展&#xff0c;没有太多大的企业敢于去把.NET作为第一生产力。你作为.NET程序员有义务去保护好你的饭碗&#xff0c;也要改变人对.NET的认知。希望大家…

JavaFX图表(一)

翻译自 JavaFX - 图表 通常&#xff0c;图表是数据的图形表示。有各种各样的图表来表示数据&#xff0c;如条形图&#xff0c;饼图&#xff0c;折线图&#xff0c;散点图等。 JavaFX支持各种饼图和XY图表。在XY平面上表示的图表包括AreaChart&#xff0c;BarChart&#xff0…