博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【2018.5.19】模拟赛之四-ssl2435 航空公司【并查集,二分】
阅读量:4313 次
发布时间:2019-06-06

本文共 2181 字,大约阅读时间需要 7 分钟。

正题


题目大意

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


解题思路

垃圾解法

用二分答案然后加并查集求是否联通。

时间复杂度:O(mlogn)O(mlogn)

正解

按距离排序,然后连边到所有岛都联通为止。

时间复杂度:O(mlogm)O(mlogm)


垃圾解法的代码

#include
#include
#include
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

对拍

数据生成

#include
#include
#include
#define random(x) rand()*rand()%x+1using 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
#include
#include
#include
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
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); }}

转载于:https://www.cnblogs.com/sslwyc/p/9218517.html

你可能感兴趣的文章
5.0以上机器XPOSED框架安装流程
查看>>
静态方法与非静态方法
查看>>
注释,字符串
查看>>
性能瓶颈
查看>>
cmd 导入数据库
查看>>
Makefile书写注意事项--个人择记(一)
查看>>
文件转码重写到其他文件
查看>>
场景3 Data Management
查看>>
树结构练习——排序二叉树的中序遍历
查看>>
AC自动机模板
查看>>
python 基本语法
查看>>
Swift - 点击箭头旋转
查看>>
git配置
查看>>
【hexo】01安装
查看>>
CI框架源码学习笔记2——Common.php
查看>>
005---书籍添加和编辑的提交数据
查看>>
使用case语句给字体改变颜色
查看>>
JAVA基础-多线程
查看>>
面试题5:字符串替换空格
查看>>
JSP九大内置对象及四个作用域
查看>>