PAT L2-014. 列车调度

题目链接:PAT L2-014. 列车调度

题意:

两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?

题解:

用set贪心一下,记录车头

 1 #include<bits/stdc++.h>
 2 #define F(i,a,b) for(int i=a;i<=b;++i)
 3 using namespace std;
 4 
 5 const int N=1e5+7;
 6 
 7 int a[N];
 8 set<int>Q;
 9 set<int>::iterator it;
10 int main()
11 {
12     int n;
13     scanf("%d",&n);
14     F(i,1,n)scanf("%d",a+i);
15     Q.insert(a[1]);
16     F(i,2,n)
17     {
18         it=Q.lower_bound(a[i]);
19         if(it!=Q.end())Q.erase(it);
20         Q.insert(a[i]);
21     }
22     printf("%d
",Q.size());
23 }
View Code
原文地址:https://www.cnblogs.com/bin-gege/p/6710703.html