白书上的例题。

每种航班可以选择两种时间降落,如果想任意航班降落时间差的最小值最大,应该如何安排?

二分时间,如果两个时间只差小于当前枚举的时间,说明这条边不可选,可以根据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的更多相关文章

随机推荐

  1. ecCodes 学习 利用ecCodes Python API对GRIB文件进行读写

    参考 https://www.ecmwf.int/assets/elearning/eccodes/eccodes2/story_html5.htmlhttps://confluence.ecmwf. ...

  2. Linux 安装Nginx(使用Mac远程访问)

    阅读本文需要一定的Linux基础 一 Nginx简介 nginx是用c语言编写的一款高性能的http服务器|反向代理服务器|电子邮件(IMAP/POP3)代理服务器 由俄罗斯的程序设计师Igor Sy ...

  3. 【SIKIA计划】_03_C#初级教程 (2015版)笔记

    Win32 API是微软的操作系统Windows提供给开发人员的编程接口,它决定了我们开发的Windows应用程序的能力.MFC是微软为开发人员提供的类库,在某种意义上是对Win32 API的封装.M ...

  4. Flink HA

    standalone 模式的高可用 部署 flink 使用zookeeper协调多个运行的jobmanager,所以要启用flink HA 你需要把高可用模式设置成zookeeper,配置zookee ...

  5. 04-matplotlib-柱形图

    import numpy as np import matplotlib.pyplot as plt # 柱形图 # 例一 N =5 y = [15,28,10,30,25] index = np.a ...

  6. 启动Nodejs服务

    vs code 中间创建 1.  settings.json { , { , { 'Content-Type': 'text/plain;charset=utf-8' })

  7. HTML常用头部变量

    简例:访问baidu的头部 GET /?tn=98827400_hao_pg HTTP/1.1 Host: www.baidu.com Connection: keep-alive Cache-Con ...

  8. 2017-2018-2 『Java程序设计』课程 结对编程练习_四则运算

    相关测试过程截图(JUnit) JudgeTest:对计算及将整数化为分数的测试 SuffixExpressionTest:中缀转后缀的测试 RationalNumberTest:对RationalN ...

  9. css3学习笔记三

    css3有些特殊的元素选择器这和jquery相似.效果图如下

  10. Java锁的种类以及辨析

    锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) .这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类 ...