UVa 1450 Airport (二分+思路)
来源:互联网 发布:千人基因组数据库 编辑:程序博客网 时间:2024/05/21 10:41
题目链接:https://vjudge.net/problem/UVA-1450
题目大意:某飞机场有两个通道W和E。每一时刻都有一些飞机到达W通道或E通道(数目分别为ai和bi),每个通道的飞机按照来的顺序编号为0 1 2 ...,然后,每一时刻只能有一架飞机起飞。求任意时刻停留在机场的飞机的最大编号的最小值。
思路:首先二分答案ans,判断是否存在一种方案,使得最大编号为ans。在判断时,如果只有一边有飞机,那么直接起飞一架那边的飞机,否则将飞机保留下来后面判断时用,即两边都能起飞飞机时就把飞机暂时保留下来。
#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include<cctype>#include <cstdlib>#include<map>#include<iostream>#include<queue>using namespace std;typedef long long LL;const int dr[] = {0,0,-1,1};const int dc[] = {-1,1,0,0};const int maxn = 5000 + 10;int a[maxn], b[maxn];int n;bool judge(int Max){//++Max; int suma = 0, sumb = 0, res = 0; for(int i = 1; i <= n; i++) { suma += a[i]; sumb += b[i]; int aa = max(suma-Max, 0); int bb = max(sumb-Max, 0); if(aa + bb > res) return false; if(suma > 0 && sumb > 0 && suma + sumb > res) ++res; else if(suma > 0 && sumb == 0) --suma; else if(suma == 0 && sumb > 0) --sumb; }return true;}int main(){int T;scanf("%d", &T);while(T--){ scanf("%d", &n); for(int i = 1; i <= n; i++) scanf("%d%d", &a[i], &b[i]); int L = 1, R = maxn*20, ans = -1; while(L <= R) { int mid = (L + R) >> 1; if(judge(mid)) { ans = mid; R = mid - 1; } else L = mid + 1; } printf("%d\n", ans-1);}return 0;}
阅读全文
0 0
- UVa 1450 Airport (二分+思路)
- uva 1450 - Airport(二分)
- UVA 1450 Airport (二分)
- uva 1450 - Airport(贪心+二分)
- UVa 1450 - Airport(二分)
- UVA 1450 Airport (二分)PS:两种思路的改错,想AC就看我!!!
- (advanced) UVA 二分+贪心 1450 - Airport
- UVA 1450 Airport(二分+想法题)
- UVA 4725 Airport (贪心+二分)
- UVa 1450 Airport 解题报告(二分+策略)
- Uva-1450-Airport
- uva 1450 airport
- UVA - 1450 Airport
- UVA 1450 LA 4725 Airport
- LA 4725 Airport 二分 -
- uva 11377 - Airport Setup
- UVA 11374 - Airport Express
- UVA 11374 Airport Express
- 二叉树链式建立(按满二叉树方式建立)
- 当使用微软365时总是出现:“程序出现问题”
- 树莓派3-OpenCV+Picom摄像头
- IDEA不选择任何maven模板创建web项目
- 使用pyspark进行机器学习(聚类问题)
- UVa 1450 Airport (二分+思路)
- js中实现页面跳转(返回前一页、后一页)
- Sequence_Cqueue(顺序循环队列)
- 补录第一次写博客
- 数据结构与算法·实验一
- J
- 【温故知新-Java虚拟机篇】3.类文件结构
- LeetCode:Palindrome Number
- 二叉排序树 c