UVAlive3211_Now or later
白书上的例题。
每种航班可以选择两种时间降落,如果想任意航班降落时间差的最小值最大,应该如何安排?
二分时间,如果两个时间只差小于当前枚举的时间,说明这条边不可选,可以根据2sat的方法构图。
然后判断安排方案是否合法即可。
召唤代码君:
#include <iostream>
#include <cstdio>
#include <cstring>
#define maxn 5555
#define maxm 26666666
using namespace std; int to[maxm],next[maxm],first[maxn],edge;
int t[maxn],Q[maxn],top=;
int n,m;
bool mark[maxn]; int abs(int x)
{
return x>=?x:-x;
} void addedge(int U,int V)
{
edge++;
to[edge]=V,next[edge]=first[U],first[U]=edge;
} bool dfs(int cur)
{
if (mark[cur^]) return false;
if (mark[cur]) return true;
Q[++top]=cur,mark[cur]=true;
for (int i=first[cur]; i!=-; i=next[i])
if (!dfs(to[i])) return false;
return true; } bool check(int x)
{
edge=-;
for (int i=; i<=n+n+; i++) first[i]=-,mark[i]=false;
for (int i=; i<=n+n+; i++)
for (int j=(i|)+; j<=n+n+; j++)
if (abs(t[i]-t[j])<x) addedge(i,j^),addedge(j,i^);
for (int i=; i<=n+n; i+=)
{
if (mark[i] || mark[i+]) continue;
top=;
if (!dfs(i))
{
while (top) mark[Q[top--]]=false;
if (!dfs(i+)) return false;
}
}
return true;
} int main()
{
while (scanf("%d",&n)!=EOF)
{
for (int i=; i<=n; i++) scanf("%d%d",&t[i+i],&t[i+i+]);
int l=,r=,mid;
while (l<r)
{
mid=(l+r+)>>;
if (check(mid)) l=mid;
else r=mid-;
}
printf("%d\n",l);
}
return ;
}
UVAlive3211_Now or later的更多相关文章
随机推荐
- ncl 函数源码 gc_inout
转自气象家园论坛 经过不懈努力,终于找到了gc_inout函数的源代码,原来在这个文件里面!一颗赛艇 位置:/ncl_ncarg-6.5.0-src/ni/src/lib/nfpfort/sg_too ...
- 接口自动化学习--mock
好久没有写学习的总结,都正月十二了,但还是要来个新年快乐鸭. 一直都在看imooc的一套java接口自动化实战课程,现在看到了尾部了,然后想到之前那些testng,mock,httpclient等都没 ...
- win10系统安装docker注意事项
首先要确保win10系统支持 hyper-v 技术. 然后按照官网的流程下载,安装,基本上不会出什么问题.安装好之后使用,需要进行以下几个操作 access denied问题的解决 按win+R,输入 ...
- Iron Speed Designer设计工具开发总结
9.0版本: 1.1 ISP和VS不要同时生成,代码写在override方法之下,不然生成之后会覆盖;正常情况下,ISP可以写代码,只不过没有快捷提示,一般我们先注释一下字段(如://sdsfdsfd ...
- WebRTC入门
什么是WebRTC? 众所周知,浏览器本身不支持相互之间直接建立信道进行通信,都是通过服务器进行中转.比如现在有两个客户端,甲和乙,他们俩想要通信,首先需要甲和服务器.乙和服务器之间建立信道.甲给乙发 ...
- python—多任务版udp聊天机器人
将多任务(多线程)引入到udp聊天机器人,可以实现同时发送消息和接收消息 import socket import threading def udp_send(udp_socket,ip,port) ...
- Xavier——Understanding the difficulty of training deep feedforward neural networks
1. 摘要 本文尝试解释为什么在深度的神经网络中随机初始化会让梯度下降表现很差,并且在此基础上来帮助设计更好的算法. 作者发现 sigmoid 函数不适合深度网络,在这种情况下,随机初始化参数会让较深 ...
- VirtualBox共享文件夹 Windows 7 (宿主机) + Ubuntu 12.04
1 安装增强功能包1.1 运行Ubuntu并登陆,菜单“设备”->“安装增强功能包(Install Guest Additions)”ubun1.2 桌面上会多出一个光盘图标,光盘默认自动加载到 ...
- PSP总结
一.回顾1 (1)回想一下你曾经对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的?经过一个学期,你的看法改变了么,为什么? 以前的回答:当初之所以选择计算机专业,是因为我比较喜欢数学,觉得计 ...
- 2017秋软工 —— 本周PSP
1. PSP 2. PSP饼图 3. 累计进度条 4. 累计折线图