博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Travel to all Points 【Codechef】
阅读量:4983 次
发布时间:2019-06-12

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

先二分答案,转化为判断性问题。再将曼哈顿距离转化为切比雪夫距离。

考虑四个最外侧的点,只从他们开始连边,因为他们最容易满足边存在的条件。用并查集判断连通性。

复杂度nlog1e9,注意用long long

#include
#include
#include
using namespace std;const int N=1e6+3;const int INF=0x7fffffff;typedef long long ll;int cur,un[N];int know(int u) { return un[u]==u?u:un[u]=know(un[u]);}void connect(int l,int r){ l=know(l); r=know(r); if(l!=r) { cur--; un[l]=r; }}int n;ll x[N],y[N];int p1,p2,p3,p4;ll mnx,mny,mxx,mxy;bool check(ll d){ cur=n; for(int i=1;i<=n;i++) un[i]=i; for(int i=1;i<=n;i++) { if(x[i]-x[p1]>=d) connect(i,p1); if(x[p2]-x[i]>=d) connect(i,p2); if(y[i]-y[p3]>=d) connect(i,p3); if(y[p4]-y[i]>=d) connect(i,p4); } return cur==1; }ll solve(){ ll l=0,r=max(mxx-mnx,mxy-mny),mid; while(l

 

                                                                                                       

转载于:https://www.cnblogs.com/mgnfcnt/p/10434539.html

你可能感兴趣的文章
BZOJ 2819: Nim dfs序维护树状数组,倍增
查看>>
WinRAR(5.21)-0day漏洞-始末分析
查看>>
终端检测HTTPS服务端
查看>>
证件照换底色
查看>>
Candies
查看>>
EAS部署:linux 下安装EAS后启动不了服务
查看>>
[BZOJ3244][NOI2013] 树的计数
查看>>
[web]python3一句话开启http服务
查看>>
基于 控制台 简易 学生信息管理系统 (增、删、改)
查看>>
Cannot add foreign key constraint 错误解决办法
查看>>
To-Read List
查看>>
PHP漏洞全解(三)-客户端脚本植入
查看>>
重载类型运算符
查看>>
poj2676
查看>>
工作时候需要学习的东西
查看>>
Win8安装教程!笔记本用U盘安装Win8只需三步
查看>>
C语言中的字符串常量
查看>>
awk分隔符设定为多个字符或字符串
查看>>
DuoCode测试
查看>>
关于9080端口和80端口实现真正意义的WebServer+ApplicationServer结合应用
查看>>