P1032 队列的序列
题目描述
现在告诉你有一个队列,一开始它是空的,首先你会把 1,2,3,…m 这 m 个数依次push入这个队列。
接着,会进行 n 次操作,每次操作你需要进行如下操作:
首先,获得队首元素,输出队首元素,并且将这个队首元素pop出队列;然后你可以在如下两个选择中任选一个操作:
- 将这个队首元素永远的抛弃;
- 将这个队首元素重新加入到队尾中。
现在告诉你 n 和 n 次操作所输出的队首元素,需要你判断是否存在一个数 m 使得这个操作是可行的。
输入格式
第一行一个正整数 n ,用于表示操作的次数。(1≤n≤100000)
第二行 n 个正整数,以空格分隔,用于表示 n 次操作所输出的队首元素。
输出格式
如果存在一个数 m 使得这 n 次操作可行,输出“YES”;否则,输出“NO”。
样例输入1
5
1 2 3 1 2
样例输出1
YES
样例输入2
5
1 2 3 2 1
样例输出2
NO
样例解释
对于样例 1,当 m3 时,我们执行如下操作就可以得到目标序列 [1,2,3,2,1]
初始时,que = [1,2,3]
step.1: 输出 1 = que.front(), que.pop(), que.push(1), 此时 que = [2,3,1]
step.2: 输出 2 = que.front(), que.pop(), que.push(2),此时 que = [3,1,2]
step.3: 输出 3 = que.front(), que.pop(), que.push(3), 此时 que = [1,2,3]
step.4: 输出 1 = que.front(), que.pop(), 此时 que = [2,3]
step.5: 输出 2 = que.fornt(), que.pop(), 此时 que = [3]
那么我们输出的序列就是 [1,2,3,1,2],所以 m3 是存在的。这个序列合法,我们输出“YES”。
对于样例 2,我们没有办法得到m。
因为我们在 1, 2, 3 之后输出了 2,也就是说我一开始抛弃了 1 ,并且 m==3,那么到此我输出 2 是合法的,
但是我在2 之后又输出了 1,但是模拟到这里我们可以明显看出 1 肯定是在之前被抛弃了。所以你个序列不合法,输出“NO”。
P1032 队列的序列的更多相关文章
- 【单调队列】bzoj2096 [Poi2010]Pilots
用两个单调队列维护序列中的最大值和最小值即可. poi~ #include<cstdio> #include<algorithm> using namespace std; i ...
- Python 双向队列Deque、单向队列Queue 模块使用详解
Python 双向队列Deque 模块使用详解 创建双向队列Deque序列 双向队列Deque提供了类似list的操作方法: #!/usr/bin/python3 import collections ...
- SAP RFC通信模式
在网络技术中,数据通信可以大致划分为两种基本模式:同步通信和异步通信. 其本义是:异步通信时,通信双方时钟允许存在一定误差:同步通信时,双方时钟的允许误差较小.在SAP的系统间的通信过程中,也借用术语 ...
- ABAP RFC远程调用
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- Python Tutorial 学习(五)--Data Structures
5. Data Structures 这一章来说说Python的数据结构 5.1. More on Lists 之前的文字里面简单的介绍了一些基本的东西,其中就涉及到了list的一点点的使用.当然,它 ...
- glib 文档 代码 索引 编译
./configure --prefix=/opt/glib-2.28.8 --enable-staticmakemake install linux下载 WIN32下载 代码索引 文档索引 GLib ...
- Python 任务队列 Celery
一. celery 简介 Celery 是一个专注于实时处理和任务调度的分布式任务队列, 同时提供操作和维护分布式系统所需的工具.. 所谓任务就是消息, 消息中的有效载荷中包含要执行任务需要的全部数据 ...
- Dictionary实现先进先出代替Queue
Queue删除其中一个元素比较麻烦,这是一个重码校验的类,主要处理是用Dictionary代替Queue了.目前使用下来还算稳定.代码贴出来给有缘人参考. /// <summary> // ...
- abap 常用TCODE
ABAP: 通过查询表TSTC或者TSTCT:SAP系统将所有的事务代码都存储在这个表中,包括字开发的Y*和Z* TCODE 事务代码功能描述 CG3Y 下载服务器上文件 CG3Z upload fi ...
随机推荐
- QT获取主机名称
//获取主机名 QString localHost = QHostInfo::localHostName();
- day5 from 金角大王
Python 之路 Day5 - 常用模块学习 本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shel ...
- oracle有哪些审计项
ACTION NAME 0 UNKNOWN 1 CREATE TABLE 2 INSERT 3 SELECT 4 CREATE CLUSTER 5 ALTER CLUSTER 6 UPDATE 7 D ...
- 洛谷 P2146 [NOI2015]软件包管理器 树链剖分
目录 题面 题目链接 题目描述 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 输出样例#1: 输入样例#2: 输出样例#2: 说明 说明 思路 AC代码 总结 题面 题目链接 P ...
- LeedCode OJ --- Binary Tree Inorder Traversal
点击打开题目链接 今天只是写了递归的版本,因为还没想好怎么用迭代来实现,可以写的过程中,有一点是有疑问的,虽然我的代码可以AC. 问题是:主调函数是可以使用子函数中返回的在子函数中定义的vector. ...
- BZOJ 1934洛谷2057善意的投票题解
题目链接 BZ链接 又是一道玄学的网络流题 我们这样建图: 对于同意观点1的原点向其连边,对于同一观点2点向汇点连边 然后如果两个人是朋友,就连一条双向边. 为什么这样是对的呢? 对于一个人来说,他要 ...
- 自定义属性 —— data-*
一.基本概念 在HTML5中添加了data-*的方式来自定义属性,所谓data-*实际上上就是data-前缀加上自定义的属性名,使用这样的结构可以进行数据存放.使用data-*可以解决自定义属性混乱无 ...
- 在WPF中绘制多维数据集
原文 https://stuff.seans.com/2008/08/13/drawing-a-cube-in-wpf/ 是时候使用WPF绘制一个简单的3D对象了.作为WPF中3D图形的快速介绍,让我 ...
- 2018-7-21-win10-uwp-调用-Microsoft.Windows.Photos_8wekyb3d8bbwe-应用
title author date CreateTime categories win10 uwp 调用 Microsoft.Windows.Photos_8wekyb3d8bbwe 应用 linde ...
- 10Redis键空间通知(keyspace notifications)
Redis的键空间通知(keyspace notifications)功能是自2.8.0版本开始加入的,客户端可以通过订阅/发布(Pub/Sub)机制,接收那些以某种方式改变了Redis数据空间的事件 ...