CSP2020廊桥分配
[CSP-S 2021] 廊桥分配
题目描述
当一架飞机抵达机场时,可以停靠在航站楼旁的廊桥,也可以停靠在位于机场边缘的远机位。乘客一般更期待停靠在廊桥,因为这样省去了坐摆渡车前往航站楼的周折。然而,因为廊桥的数量有限,所以这样的愿望不总是能实现。
机场分为国内区和国际区,国内航班飞机只能停靠在国内区,国际航班飞机只能停靠在国际区。一部分廊桥属于国内区,其余的廊桥属于国际区。
L 市新建了一座机场,一共有
现给定未来一段时间飞机的抵达、离开时刻,请你负责将
输入格式
输入的第一行,包含三个正整数
接下来
接下来
每行的多个整数由空格分隔。
输出格式
输出一个正整数,表示能够停靠廊桥的飞机数量的最大值。
样例 #1
样例输入 #1
3 5 4
1 5
3 8
6 10
9 14
13 18
2 11
4 15
7 17
12 16
样例输出 #1
7
样例 #2
样例输入 #2
2 4 6
20 30
40 50
21 22
41 42
1 19
2 18
3 4
5 6
7 8
9 10
样例输出 #2
4
样例 #3
样例输入 #3
见附件中的 airport/airport3.in
样例输出 #3
见附件中的 airport/airport3.ans
提示
【样例解释 #1】
在图中,我们用抵达、离开时刻的数对来代表一架飞机,如
我们以表格中阴影部分的计算方式为例,说明该表的含义。在这一部分中,国际区有
- 首先
在时刻 抵达,停靠在廊桥。 - 然后
在时刻 抵达,停靠在另一个廊桥。 - 接着
在时刻 抵达,这时前 架飞机都还没离开、都还占用着廊桥,而国际区只有 个廊桥,所以只能停靠远机位。 - 最后
在时刻 抵达,这时 这架飞机已经离开,所以有 个空闲的廊桥,该飞机可以停靠在廊桥。
根据表格中的计算结果,当国内区分配
【样例解释 #2】
当国内区分配
需要注意的是,本题中廊桥的使用遵循“先到先得”的原则,如果国际区只有
【数据范围】
对于
对于
对于
解答
#include<bits/stdc++.h>
#define rt register int
using namespace std;
int n,m1,m2,ans1[100005],ans2[100005];
int res;
#define pii pair<int,int>
set<pii > a,b;
set<pii > :: iterator id;
pii tmp;
inline int read(){
int f=1,x=0;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
return f*x;
}
inline void write(int x){
if(x<0){
putchar('-');x=-x;
}
if(x>9)
write(x/10);
putchar(x%10+'0');
}
inline int worka(){
int res=0,now=0;
while(true){
id=a.lower_bound(make_pair(now,now));
if(id==a.end())break;
++res;now=id->second;
a.erase(id);
}
return res;
}
inline int workb(){
int res=0,now=0;
while(true){
id=b.lower_bound(make_pair(now,now));
if(id==b.end())break;
++res;now=id->second;
b.erase(id);
}
return res;
}
int main(){
n=read();m1=read();m2=read();
for(rt i=1;i<=m1;++i)
{
tmp.first=read();tmp.second=read();
a.insert(tmp);
}
for(rt i=1;i<=m2;++i)
{
tmp.first=read();tmp.second=read();
b.insert(tmp);
}
ans1[0]=0;ans2[0]=0;
for(rt i=1;i<=n;++i)
ans1[i]=ans1[i-1]+worka();
for(rt i=1;i<=n;++i)
ans2[i]=ans2[i-1]+workb();
for(rt i=0;i<=n;++i)
res=max(res,ans1[i]+ans2[n-i]);
write(res);
}
本文作者:zychh
本文链接:https://www.cnblogs.com/zychh/p/16743671.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步