【问题描述】
山山非常喜欢他的玩具火车。这列玩具火车总共有 n 节车厢,他给火车的每一节车厢
按照 从车头到车尾的顺序标上了序号 1 ~ n。
山山家来了一个幼儿园的小朋友岳岳。岳岳非常调皮,他把山山的玩具火车拆了又拼,
拼了又拆。岳岳走之后,山山发现他的玩具火车的车厢顺序被完全弄乱了,不过他不担心,
因为他已经给车厢按顺序标过号了。山山想把自己的火车给拼回原来的样子,但是因为一些
原因,他想调整尽量少的车厢,并且遵循以下两种操作方式:
1. 将某节车厢拆下来,拼接到车头;
2. 将某节车厢拆下来,拼接到车尾。
注意, 当某节车厢被拆下来后,山山会将它两边的车厢拼在一起,使得这些车厢始终
是一列完整的火车。
由于山山还只是一名小学生,他的计算能力不是很强,于是他希望你能帮他算出最少需
要调整几次车厢就能把玩具火车恢复原状。

【输入格式】
输入文件名为 train.in。
第一行为一个正整数 n。
第二行为 n 个整数,表示被弄乱后的火车从车头到车尾每一节车厢上的标号,保证其为一
个 1 ~ n 的排列。

【输出格式】
输出文件名为 train.out。
输出仅一行一个整数 ans 表示答案。

【样例输入与输出】
train.in
5
4 1 2 5 3
train.out
2

【数据范围】
对于 20%的数据:0 < n <= 100
对于另外 20%的数据:0 < n <= 200000,保证数列单调不上升
对于 100%的数据:0 < n <= 200000


在这道题中,我们可以把火车移到前面或后面,目标都是保证最后的升序,而且当前怎么移对其他火车的位置是没有影响的。

所以我们直接统计最长连续上升子序列,n减去这个子序列就是答案。

代码:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>#define ll long long
#define il inline
#define db double#define max(a,b) ((a)>(b)?(a):(b))using namespace std;int f[200045];int main()
{freopen("train.in","r",stdin);freopen("train.out","w",stdout);int n;cin>>n;int ans=0;int x;for(int i=1;i<=n;i++){scanf("%d",&x);f[x]=f[x-1]+1;ans=max(ans,f[x]);}printf("%d\n",n-ans);return 0;
}

转载于:https://www.cnblogs.com/gshdyjz/p/7681916.html

Trains 归纳法相关推荐

  1. 【Paper】2017_Distributed control for high-speed trains movements

    Y. Zhao and T. Wang, "Distributed control for high-speed trains movements," 2017 29th Chin ...

  2. 9.3 Trains and Evaluates the MNIST network using a feed dictionary

    简介 这部分代码来自tensorflow的源码,代码中的注释相当的详细,假如对于9.2 你已经比较详细,那么我建议您运行这份源码示例.他会给你很好的帮助. 这份代码主要展示了projector模块(当 ...

  3. uva 1614奇怪的股市(归纳法证明,贪心)

    uva 1614奇怪的股市(归纳法证明,贪心) 输入一个长度为n的序列a,满足\(1\le a_i\le i\),要求确定每个数的正负号,使得所有数的总和为0.例如a={1, 2, 3, 4},则4个 ...

  4. CF819E:Mister B and Flight to the Moon(构造、归纳法)

    解析 本题也算看了一半题解吧 看到"数学归纳法"退出来自己推的 这题想到归纳法后面也就简单了 首先,n=3和n=4的时候显然有解,可以打表 然后考虑在获得n-2的答案时,如何获得n ...

  5. codeforces 675E E. Trains and Statistic(线段树+dp)

    题目链接: E. Trains and Statistic time limit per test 2 seconds memory limit per test 256 megabytes inpu ...

  6. Codeforces Gym 100338H High Speed Trains 组合数学+dp+高精度

    原题链接:http://codeforces.com/gym/100338/attachments/download/2136/20062007-winter-petrozavodsk-camp-an ...

  7. Dummies Guide to Trains in Japan

    来源:http://www.goaround.org/travel-asia/247702.htm Q:I've traveled to Europe (London's Tube, Paris' M ...

  8. 归纳法与面向对象思维

    归纳法包括:枚举归纳推理,因果关系法,概率推理. 上面归纳法的枚举归纳推理,因果关系法就是编程中面向对象的思维,核心一致. 我要感谢自己学了编程,面向对象思维是自底向上,从特性到共性或者整合的目的,共 ...

  9. 【算法学习笔记六】递归之归纳法

    基于递归的技术对于许多问题,使用递归使得使用简洁.易于理解和高效的算法来解决复杂问题成为可能(从算法的角度来看)递归最简单的形式是将问题分解成一个或多个子问题,这些子问题在结构上与原问题相同,然后将这 ...

最新文章

  1. 201803考试批次2C 程序设计语言,201803考试批次2可视化程序设计(VB)D卷
  2. android测试点整理
  3. 基于STM32F103双轴机械臂完整电路板设计
  4. final ListURL jars = new LinkedListURL();
  5. 跨年过程中因日期格式化引发的生产故障:格式化方式YYYYMMdd和yyyyMMdd的区别
  6. 1207.1——C语言 函数
  7. jsvascript 学习 二 操作符
  8. 4g内存电脑装xp系统怎么样_系统坏了?去店了重装系统又贵?今天手把手教你如何重装系统...
  9. Vue Element校验validate
  10. excel (wps) 文件受保护处理方案
  11. 集成电路设计的运作模式
  12. 阿里云物联网平台如何进行云产品流转
  13. 0 win10重装partition_gpt分区无法安装win10的根本原因
  14. inFace发布618战报:蝉联造型梳TOP1,销售额相比去年双11增长906%
  15. 历史上十大著名思想实验
  16. SpringBoot - 错误: 找不到或无法加载主类
  17. 达内python第一次月考题目_第一次月考试卷分析
  18. SVN如何本地拉取项目
  19. Tesseract OCR简介(一)
  20. Java实现8枚硬币问题(减治法)

热门文章

  1. 【转】贝叶斯网络+马尔科夫毯 简介
  2. 移动端软件测试要点,移动端测试用例设计总结
  3. threejs基础示例
  4. 对'\0'的敬畏——由阶乘想到的
  5. extjs chart无法在panel中显示_HighChart教程:Swift中的Highcharts iOS库
  6. 【kafka】支持超高并发的kafka网络设计
  7. 【Elasticsearch】es 快照 snapshot 操作实战
  8. 【Jackson】jackson 语法介绍 关键字
  9. 95-40-150-java.util.concurrent-ExecutorCompletionService
  10. 10-10-030-简介-Kafka之数据存储