7-7-1 队列 queue 无聊的队列
小明今天课上刚学习了队列数据结构,你看这个队列他又长又宽,就像这个碗他又大又圆。
不过小明觉得队列只能从队尾插入,队首弹出太无聊了,于是他就想重新设计以下,以使队列能够翻转。
翻转:队首变为队尾,队尾变为队首。
那么现在队列变成了有以下三个操作的队列:
队尾插入
队首弹出
翻转队列
初始时,这里有一个空队列,我们对他进行以上三个操作。
输入格式:
第一行一个正整数q(1<=q<=400000),表示对队列的操作次数,初始时,队列为空。接下来q行,
若是 1 x,则将x插入当前队列(1<=x<=1000000)。
若是 2,则从队列中弹出队首元素(若当前队列为空,则忽略此操作)
若是 3,则翻转当前队列
输出格式:
对于每个输入输出一行一个整数,为当前队列队首和队尾的异或值(这里的异或是按位异或,运算符为 ‘^’)。若当前队列为空,则输出-1
输入样例1:
5
1 2
1 3
3
2
2
输出样例1:
0
1
1
0
-1
输入样例2:
4
1 2
3
1 3
3
输出样例2:
0
0
1
1
思路:双端队列容器 设置标志来控制反转操作 双端队列deque容器详解
坑:第一遍一直用的cin>>输入一直超时 后来换成了printf scanf 才完事儿hhh
#include <iostream>
#include <deque>
#include <algorithm>
#include <cstdio>
using namespace std;
deque<int> que;
bool flag = true;
int main()
{int n;scanf("%d",&n);while(n--){int i;scanf("%d",&i);switch(i){case 1:int x;scanf("%d",&x);if(flag) que.push_back(x);else que.push_front(x);break;case 2:if(!que.empty()){if(flag) que.pop_front();else que.pop_back();}else break;break; //不要因为上边的break就丢掉下边的case 3:flag = !flag;break;default:break;}if(!que.empty()) printf("%d\n",que.front()^que.back());else printf("-1\n");}return 0;
}
7-7-1 队列 queue 无聊的队列相关推荐
- 7-7-1 队列 queue 无聊的队列 (300 分)
小明今天课上刚学习了队列数据结构,你看这个队列他又长又宽,就像这个碗他又大又圆. 不过小明觉得队列只能从队尾插入,队首弹出太无聊了,于是他就想重新设计以下,以使队列能够翻转. 翻转:队首变为队尾,队尾 ...
- 35 线程优先级队列(queue)
Python的queue模块中提供了同步的.线程安全的队列类,包括先进先出队列Queue.后进先出队列LifoQueue和优先级队列PriorityQueue.这些队列都是先了锁原语,可以直接使用来实 ...
- python 归纳 (十二)_并发队列Queue的使用
# -*- coding: UTF-8 -*- """ 学习队列 Queue总结:1. 队列可以设置大小,也可以无限大小2. 空了,满了,读写时可以阻塞,也可以报错3. ...
- Python 线程队列 Queue – FIFO - Python零基础入门教程
目录 一.Python 线程队列分类 二.Python 线程先进先出队列 Queue 简介 三.Python 线程先进先出队列 Queue 常用函数 四.Python 线程先进先出队列 Queue 使 ...
- 数据结构之队列queue
C++数据结构之队列queue 什么是队列 队列的基本特征 队列是如何工作的 队列的实现 队列的应用 什么是队列 与栈相反,队列是一种先进先出(FIFO)的线性表,只允许在表的一端插入,在另一端删除. ...
- 数据结构与算法笔记(五)——队列(FIFO队列、双端队列)
一.FIFO队列 1.1.概念 队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 队列是一种先进先出的(First In First Out)的线性表,简称FIFO.允许 ...
- java lifo 队列_1.8 Java 队列 Queue、双端队列 Deque - Java 知识总结与学习
queue 在java5中新增加了java.util.Queue接口,用以支持队列的常见操作.该接口扩展了java.util.Collection接口.除了基本的 Collection 操作外,队列还 ...
- python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)
今天为大家带来的内容是:python高级编程之消息队列(Queue)与进程池(Pool),结合了实例的形式详细分析了Python消息队列与进程池的相关原理.使用技巧与操作注意事项!!! Queue消息 ...
- PYTHON——多线程:队列Queue数据结构
1.队列模块简介 队列是一种数据结构,用于存放数据,类似列表.它是先进先出模式(FIFO模式),类似管道一般: 单线程不需要用到队列Queue,它主要用在多线程之间的,Queue称为多线程利器. 列表 ...
最新文章
- 腾讯优图开源首个医疗AI ML预训练模型
- 3.1.5 动态分区分配算法
- Windows上安装Mysql解压缩版教程
- 【小题目】输入一个数字表示重量,如果重量<=20,则每千克收费0.35元;如果超过20千克不超过100千克的范围,则超过的部分按照每千克0.5元收费;如果超过100千克,则超过的范围按照每千克0.8元
- cocoa pods Installation
- 如何查找SAP Fiori UI上某个字段对应的底层数据库表
- iphone 抹除设备是什么意思_SMT设备有哪些,SMT是什么意思?
- 我的Java自学之路,java高级面试笔试题
- Python中的numpy.append()
- JNI/NDK入门指南之JNI数据类型,描述符详解
- HTML5_用语义化标记重新定义博客
- UESTC 1639 云中谁寄锦书来?雁字回时,月满西楼。 Dijkstra拓展
- arcgis把jpg转成栅格图像_[转载]在ArcGIS中配准(TIF、JPEG)栅格图像并矢量化(转)...
- 魔兽争霸3的MapHack制作教程(一)显示敌对单位
- Qt: 判断字符串是否为数字,是否为整数
- 将字符串写入文件的五种方法
- 这个MT4指标代码哪里出问题了?
- QGIS|如何制作行政区划四色图
- 国产超低功耗华大MCU资料汇总
- YOLOv3论文翻译讲解