51nod1671
题解:
这一题感觉和noip2015d2t3一模一样,而且是弱化版
但是,后来发现貌似每两个点都可以建立虫洞
好在是i和i+1有边,所以就直接用二分+贪心了
代码:
#include<bits/stdc++.h>
const int N=,inf=<<;
using namespace std;
int n,m,l[N],r[N];
bool check(int mid)
{
int d1=-inf,d2=<<,c1=-inf,c2=<<;
for(int i=;i<=m;i++)
{
if(r[i]-l[i]<=mid) continue;
d1=max(d1,l[i]+r[i]-mid);
d2=min(d2,l[i]+r[i]+mid);
c1=max(l[i]-r[i]-mid,c1);
c2=min(l[i]-r[i]+mid,c2);
if(d1>d2||c1>c2) return ;
}
return ;
}
int read()
{
int x=;char c;
for (;c<''||c>'';c=getchar());
for (;c>=''&&c<='';c=getchar())x=x*+c-;
return x;
}
int main()
{
n=read();m=read();
for(int i=;i<=m;i++)
{
l[i]=read();r[i]=read();
if (l[i]>r[i])swap(l[i],r[i]);
}
int l=,r=n,ans=-;
while(l<r)
{
int mid=(l+r)/;
if(check(mid))r=mid;
else l=mid+;
}
printf("%d",l);
}
51nod1671的更多相关文章
- [51nod1671]货物运输
公元2222年,l国发生了一场战争. 小Y负责领导工人运输物资. 其中有m种物资的运输方案,每种运输方案形如li,ri.表示存在一种货物从li运到ri. 这里有n个城市,第i个城市与第i+1个城市相连 ...
- 51nod1671【货物运输】
开始天真的我以为这道题和运输计划是一样的套路.于是写了一发,debug后发现过了第一个点,十分开心的交了一发,结果只过了第一个点.后来发现这个并不是一样的,因为修建黑洞之后路径法变了,而运输计划没有( ...
随机推荐
- BZOJ1355: [Baltic2009]Radio Transmission KMP
Description 给你一个字符串,它是由某个字符串不断自我连接形成的. 但是这个字符串是不确定的,现在只想知道它的最短长度是多少. Input 第一行给出字符串的长度,1 < L ≤ 1, ...
- [BZOJ3613][Heoi2014]南园满地堆轻絮 二分答案
Description 小 Z 是 ZRP(Zombies’ Republic of Poetry,僵尸诗歌共和国)的一名诗歌爱好者,最近 他研究起了诗词音律的问题. 在过去,诗词是需要编成曲子唱 ...
- phantomjs在win10下的安装
phantomjs只能通过官网下载,下载地址:http://phantomjs.org/download.html. 1.最好下载在英文文件夹下.下载完成后,解压. 2.进入bin文件,右击属性,将p ...
- springmvc基础知识及注解
SpringMVC 1.概念 Spring的MVC框架是一个基于DispatcherServlet的MVC框架,主要由DispatcherServlet.处理器映射.处理器.视图解析器.视图组成.每一 ...
- win10 鼠标指针
https://www.ithome.com/html/zhuti/26449.htm
- c++ 二分法查找(binary_search)
#include <iostream> // cout #include <algorithm> // binary_search, sort #include <vec ...
- python 斐波那契查找
def fibonacci_search(lis, key): # F = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987 ...
- Redis 安装到linux系统
下载地址 : http://download.redis.io/releases/redis-3.0.3.tar.gz ). tar -zxvf redis-.tar.gz -C /usr/share ...
- MySQL函数GROUP_CONCAT() 实现多条数据合并
group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来,group by指定的列进行分组. 例如: -- 根据物流订单id查询所有物流订单,车源订单,车辆信息(多条数据合并为一条 ...
- 记录Vmware Workstation及Centos6.8 的安装
网上找到的一个非常详细的安装详解.个人觉得非常好.于是加保存一下.地址:http://www.mamicode.com/info-detail-1462939.html