LA3211 Now or later】的更多相关文章

题目大意:n架飞机,每架可选择两个着落时间.安排一个着陆时间表,使得着陆间隔的最小值最大.(转自http://blog.csdn.net/u013514182/article/details/42333363) 每个飞机有两个选择:时间1或时间2,分别用xi和x'表示.最小值最大,考虑二分答案ans; 对于任意两家飞机x,y,x选择时间k,y选择时间l,如果时间差小于ans,说明1.x选k后y必须不能选l,2.y选l后x必须不能选k 边开小了,疯狂RE,边居然要开到千万级别...竟然出了这么极端…
https://vjudge.net/problem/UVALive-3211 As you must have experienced, instead of landing immediately, an aircraft sometimes waits in a holding loop close to the runway. This holding mechanism is required by air traffic controllers to space apart airc…
题意 有n嫁飞机需要着陆.每架飞机都可以选择“早着陆”和“晚着陆”两种方式之一,且必须选择一种.第i架飞机的早着陆时间为Ei,晚着陆时间为Li,不得在其他时间着陆.你的任务是为这些飞机安排着陆方式,使得整个着陆计划尽量安全.话句话说,如果把所有飞机的实际着陆时间按照从早到晚的顺序排列,相邻两个着陆时间间隔的最小值(称为安全间隔)应尽量大. 分析 看到最小值最大立刻会想到二分.大体思路很好想,我们二分这个安全间隔,然后判断是否可行.那么这个题的难点就变为如何判断这个安全间隔是否可行. n架飞机,每…
2-sat+二分... 每次二分答案然后连边2-sat...边要开到n*n 样例水得跟没有一样... #include<bits/stdc++.h> using namespace std; ; struct edge { int nxt, to; } e[N * N << ]; , top, Time, cot; int dfn[N], low[N], vis[N], st[N], early[N], late[N], head[N], belong[N]; void link(…
题意: 有n架飞机需要着陆.每架飞机有两种选择,早着陆或者晚着陆,二选其一.现在为了保证飞机的着陆安全,要求两架着陆的飞机的时间间隔的最小值达到最大. 分析: 最小值最大问题我们想到二分答案.对于猜测值x,判断是否有一种方案使相邻两着陆时间都不小于x. 如果两架飞机的某着陆时间差小于p,证明不能同时选择.根据这个条件建图,再用2-SAT判断是否有解即可. 代码如下: #include<cstdio> #include<cstdlib> #include<cstring>…