题意:有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?
lower_bound(首地址,尾地址,需要查找的元素)- 首地址 :寻找大于等于一个数的位置
upper_bound(首地址,尾地址,需要查找的元素)- 首地址 : 寻找大于一个数的位置
返回地址 加*是数值
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <queue>
#include <map>
#include <cmath>
#include <iostream>
#include <set>
#include <vector>
#define INF 0x3f3f3f3f
using namespace std;
const int N=100007;
int a[N];
int ri[N];
int main()
{
int n;
scanf("%d",&n);
int k=0;
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]<ri[k-1])
{
int pos=(int)(lower_bound(ri,ri+k,a[i])-ri);
ri[pos]=a[i];
}
else ri[k++]=a[i];
}
printf("%d\n",k);
}