hdu5699 货物运输(二分)
来源:互联网 发布:越知月光x毛利寿三郎h 编辑:程序博客网 时间:2024/05/01 10:10
题目链接:点这里!!!
题意:中文题
题解:
1、直接去二分答案。
2、我们假设传送为l,r,我们二分的答案为d。我们对所有运输方式来进行计算。
3、如果R-L<=d我们我不去考虑。
4、对于R-L>d,有|L-l|+|R-r|<=d,进行去绝对值加合并得到:
L+R-d<=l+r<=L+R+d
L-R-d<=l-r<=L-R+d
5、对上面的不等式判断是否可行就ok啦!!!
代码:
#include<cstdio>#include<cstring>#include<iostream>#include<sstream>#include<algorithm>#include<vector>#include<bitset>#include<set>#include<queue>#include<stack>#include<map>#include<cstdlib>#include<cmath>#define LL long long#define pb push_back#define pa pair<int,int>#define clr(a,b) memset(a,b,sizeof(a))#define lson lr<<1,l,mid#define rson lr<<1|1,mid+1,r#define bug(x) printf("%d++++++++++++++++++++%d\n",x,x)#define key_value ch[ch[root][1]][0]#pragma comment(linker, "/STACK:102400000000,102400000000")const LL MOD = 1000000007;const int N = 1e6+15;const int maxn = 1e5+15;const int letter = 130;const int INF = 2e9;const double pi=acos(-1.0);const double eps=1e-10;using namespace std;inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}int n,m;int l[N],r[N];bool check(int x){ int min1=INF,max1=-INF; for(int i=0;i<m;i++){ if(r[i]-l[i]<=x) continue; min1=min(min1,r[i]+l[i]+x); max1=max(max1,r[i]+l[i]-x); } if(min1<max1) return 0; min1=INF,max1=-INF; for(int i=0;i<m;i++){ if(r[i]-l[i]<=x) continue; min1=min(min1,l[i]-r[i]+x); max1=max(max1,l[i]-r[i]-x); } if(min1<max1) return 0; return 1;}int main(){ while(~scanf("%d%d",&n,&m)){ for(int i=0;i<m;i++){ scanf("%d%d",l+i,r+i); if(l[i]>r[i]) swap(l[i],r[i]); } int l=1,r=n,mid; while(l<r){ mid=(l+r)>>1; if(check(mid)) r=mid; else l=mid+1; } printf("%d\n",r); } return 0;}
0 0
- hdu5699 货物运输(二分)
- HDU5699货物运输 (二分+不等式判断)
- hdu5699货物运输
- HDU5699 2016"百度之星" - 初赛(Astar Round2B)货物运输
- 货物运输
- HDU 5699 货物运输 ( 二分 + 不等式判断 )
- 【二分+曼哈顿距离】51Nod 1671 货物运输
- [二分+曼哈顿距离] 51Nod1671 货物运输
- HDU 5699 货物运输 (二分 + 不等式判断 好题)
- Jzoj4789 货物运输
- [BZOJ1003][ZJOI2006]货物运输
- HDU 5699 货物运输
- HDU 5699 货物运输
- HDU 5699 货物运输
- 51Nod-1671-货物运输
- HDU 5699 货物运输
- Hdu 5699 货物运输
- hdu 5699 货物运输 (啥)
- web---SASS
- java之单例模式
- Android CrashHandler编写自己的异常捕获类
- 一步一步学习Unix编程[2]——迭代服务器
- CodeForces 691D Swaps in Permutation (并查集 + 双向链表)
- hdu5699 货物运输(二分)
- hdu 2844 coins DP多重背包
- 我的NIO学习笔记
- 用正则表达式检验输入框内容是否合法
- 【JVM】(一):Java内存模型
- 【COCI2012 Task 5】T6 poplocavanje ([JZOJ3172]贴瓷砖)(AC自动机模板)
- thinkphp的model三大自动功能
- WebViewClient与常用事件监听
- 前端开发人员必须了解的七大技能图谱