题目背景

自行脑补,

题目描述

有N辆列车,标记为1,2,3,…,N。它们按照一定的次序进站,站台共有K个轨道,轨道遵从先进先出的原则。列车进入站台内的轨道后可以等待任意时间后出站,且所有列车不可后退。现在要使出站的顺序变为N,N-1,N-2,…,1,询问K的最小值是多少。(也就是最少需要几个轨道)

输入输出格式

输入格式:

输入共2行。

 第 1 行包含1个正整数N,表示N辆列车。

 第 2 行包含N个正整数,为1至N的一个排列,表示进站次序。

输出格式:

 输出共1行,包含1个整数,表示站台内轨道数K的最小值。

输入输出样例

输入样例#1:

3
1 2 3
输出样例#1:

3
输入样例#2:

9
1 3 2 4 8 6 9 5 7
输出样例#2:

5

说明

 对于30%的数据,N≤10;

 对于70%的数据,N≤2000;

 对于100%的数据,N≤100000

分析:

属于一类模型转换的题。此题在poj之旅中应有原题。在此重述,加深印象。

我们可以假设结果是K,假设这个序列的最长上升序列为L,我们可以证明出K>=L,所以K的最小值只能是L。

具体证明:

由于问题是一个队列,只能先进先出,所以K的最小值实际就是将原序列划分成几个下降序列,如果K<=L,那么就无法将L个递增的数字无矛盾的放入K个下降序列,即必然在某一个下降序列中存在a>b的。这其实就是鸽笼原理。

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=;
int a[maxn];
int n;
int main(){
scanf("%d",&n);
memset(a,0x3f,sizeof(a));
for (int i=;i<=n;i++){
int x;
scanf("%d",&x);
*lower_bound(a+,a+n+,x)=x;
}
printf("%d",lower_bound(a+,a+n+,a[])-a-);
return ;
}

T2848 列车调度(二分或dp)的更多相关文章

  1. L2-014. 列车调度 (DP)

    火车站的列车调度铁轨的结构如下图所示. Figure 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道进入,最后从出口 ...

  2. L2-014 列车调度 (25 分)

    L2-014 列车调度 (25 分)   火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择 ...

  3. PTA 7-2 列车调度(25 分)

    7-2 列车调度(25 分) 火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道 ...

  4. L2-014. 列车调度

    L2-014. 列车调度 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 火车站的列车调度铁轨的结构如下图所示. Figure ...

  5. 清华学堂 列车调度(Train)

    列车调度(Train) Description Figure 1 shows the structure of a station for train dispatching. Figure 1 In ...

  6. POJ3208 Apocalypse Someday(二分 数位DP)

    数位DP加二分 //数位dp,dfs记忆化搜索 #include<iostream> #include<cstdio> #include<cstring> usin ...

  7. PAT L2-014 列车调度

    https://pintia.cn/problem-sets/994805046380707840/problems/994805063166312448 火车站的列车调度铁轨的结构如下图所示. 两端 ...

  8. L2-014. 列车调度(set)*

    L2-014. 列车调度 参考博客 #include <iostream> #include <cstdio> #include <set> #include &l ...

  9. PAT L2-014 列车调度(最长上升nlogn)

    火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道进入,最后从出口离开.在图中有 ...

随机推荐

  1. vue-router动态路由控制

    一.注册使用vue-router import Vue from 'vue' import Router from 'vue-router' Vue.use(Router); 二.编写动态路由注册函数 ...

  2. js 类数组转化数组

    一.常见类数组集合 (1).arguements function fn(){ var arr = [].slice.call(arguements,0); } (2).HTMLCollection  ...

  3. github上创建java项目简单操作

    github上创建java项目简单操作 参考L: github上创建java项目简单操作 - CSDN博客http://blog.csdn.net/qq_29392425/article/detail ...

  4. 【转载】Fiddler抓包及模拟服务端

    此文章转载公众号‘云测学院'链接:https://mp.weixin.qq.com/s/qXmBDh980nBJ8IchbRGC3Q 及公众号gloryroadtrain 在HTTP接口的测试过程中, ...

  5. C#窗体随意移动

    //全区域移动 const int WM_NCLBUTTONDOWN = 0xA1; const int HT_CAPTION = 0x2; [DllImport("user32.dll&q ...

  6. Unity优化垃圾回收GC

  7. CodeChef:Chef and Problems(分块)

    CodeChef:Chef and Problems 题目大意 有一个长度为n的序列$a_1,a_2,……,a_n$,每次给出一个区间[l,r],求在区间内两个相等的数的最远距离($max(j-i,满 ...

  8. 最小费用最大流——ZKW

    对于最小费用最大流,我们的通常做法是EK+SPFA. 然而,卡常界大佬ZKW发明了一个求解最小费用最大流的方法,很强啊. 在学ZKW费用流前,先说说KM算法. KM算法 为啥要先提这个呢?因为ZKW费 ...

  9. Linux跨PC拷贝之SCP

    命令:scp 不同的Linux之间copy文件常用有3种方法: 第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的copy. ...

  10. Activiti 使用小结

    自定义表单类型 使用动态表单,需要定义表单的字段以及属性,在WEB流程设计器中没有Default字段(Eclipse中有),给设计带来了一定的困难,下面介绍如何在WEB流程设计器中扩展表单. 首先在s ...