题目链接
来源:牛客网

题目描述

ZZT 创造了一个队列 Q。这个队列包含了 N 个元素,队列中的第 i 个元素用 Qi 表示。Q1 表示队头元素,QN 表示队尾元素。队列中的元素是 N 的一个全排列。

ZZT 需要在这个队列上执行 P 次操作,操作分两种:
FIRST X: 将元素 X 移到队头。
LAST X: 将元素 X 移到队尾。

在 P 次操作之后,ZZT 想知道队列中的元素的排列方式,由于他最近很忙,因此需要请你帮他解决这个问题。
输入描述:
第一行输入一个正整数 N,表示队列的大小。
第二行输入 N 个正整数,Q1, Q2, Q3, … …, QN,Qi 表示队列中的第 i 个元素。保证这 N 个数是 N 的一个全排列。
第三行输入一个正整数 P,表示接下来要进行的操作次数。
接下来 P 行,第 i 行输入一个字符串 Si 以及一个正整数 Xi,表示一次操作。
1 ≤ N ≤ 105.
1 ≤ Qi ≤ N.
1 ≤ P ≤ 105.
Si \in∈ { “FIRST”, “LAST” }.
1 ≤ Xi ≤ 105.

输出描述:

输出 N 个正整数,表示 P 次操作之后的队列。

示例1

输入

4
4 2 1 3
3
FIRST 4
LAST 2
LAST 1

输出

4 3 2 1

思路:

由于题目给的数字序列是n的一个全排列,所以只需用一个数组来保存n的每一个数字的位置,在下面的插入操作中不断更新这个数组中对应数字的位置,最后根据位置进行排序即可。详见代码:

代码:

#include<iostream>
#include<string>
#include<algorithm>using namespace std;
const int maxn = 100010;
int arr[maxn], pos[maxn], n;bool cmp(int a, int b) {return pos[a] < pos[b];
}int main()
{ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);int i, num;string str;cin >> n;for (i = 1; i <= n; ++i) {cin >> arr[i];pos[arr[i]] = i;}int T, l = 1, r = n;cin >> T;while (T--) {cin >> str >> num;if (str == "FIRST")pos[num] = --l;elsepos[num] = ++r;}sort(arr + 1, arr + n + 1, cmp);for (i = 1; i <= n; ++i) {cout << arr[i] << " ";}cout << endl;return 0;
}

牛客:队列Q(思维)相关推荐

  1. 牛客 - 建通道(思维)

    题目链接:点击查看 题目大意:给出每个点的权值为v[ i ],现在要求将 n 个点互相连通,以保证代价最小,点 i 和点 j 连接的代价为 lowbit( v[ i ] ^ v[ j ]) 题目分析: ...

  2. 牛客 - 捡金币(思维+二维前缀和+构造)

    题目链接:点击查看 题目大意:给出一个n*m的矩阵,每个方格都有一个权值,现在给出q次询问,每次询问的格式是x,y,k,问与点(x,y)的曼哈顿距离不超过k的方格内的所有权值之和 题目分析:首先这个题 ...

  3. 牛客 - 双流机场(思维)

    题目链接:点击查看 题目大意:给出一个n*m的有向图,每一行和每一列的方向都是相同的,现在给出每一行和每一列的方向,问给出的图是不是一个强联通图 题目分析:这个题目之前做过数据很小的版本,当时那个题目 ...

  4. (牛客腾讯思维编程题)编码编码分组打印下标题目分析

    本题答案在这点击进入 假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa,aaaa, aaab, aaac, - ...

  5. 牛客 - 树上博弈(思维)

    题目链接:点击查看 题目大意:给出一棵树,现在有两个人在玩一个游戏,两人依次在树上行走,只能走没有人的结点,无法行走的人失败,题目需要我们求出有多少个初始点对,对于先手而言是必胜的情况 题目分析:其实 ...

  6. 【牛客 - 373C】抓捕盗窃犯(连通图,思维,dfs 或 并查集)

    题干: 链接:https://ac.nowcoder.com/acm/contest/373/C 来源:牛客网 Q市发生了一起特大盗窃案.这起盗窃案是由多名盗窃犯联合实施的,你要做的就是尽可能多的抓捕 ...

  7. 洛谷or牛客数据结构+算法

    栈思想:先进后出 tips:栈里能放下标就放下标 (牛客)小c的计事本(直接用stack可以简化代码,且不会被自己绕晕,当时没意识到) (牛客)吐泡泡(没意识到用栈),(牛客)好串 1.后缀表达式(栈 ...

  8. 牛客练习赛75 D 减数游戏(队列优化(需要取模的)堆)

    牛客练习赛75 D 减数游戏 思路:写一下式子可以发每次选择最小的两个数进行操作,最后得到的答案会是最大的,那我们可以将它放进一个最小堆中来维护,但是里面的数是需要取模的,当它取模的时候,将会变小.那 ...

  9. 【牛客 - 188C】水图(bfs树的直径,思维)

    题干: 链接:https://ac.nowcoder.com/acm/contest/188/C 来源:牛客网 小w不会离散数学,所以她van的图论游戏是送分的 小w有一张n个点n-1条边的无向联通图 ...

最新文章

  1. awstats linux日志分析,(总结)Linux下使用awstats分析Nginx的日志详情
  2. Binary Watch二进制时间
  3. OO第四单元博客作业
  4. Android之用Handler实现主线程和子线程互相通信以及子线程和子线程之间的通信
  5. JAVA线程并发数量控制_线程同步工具(二)控制并发访问多个资源
  6. 分布式服务框架XXL-RPC
  7. [转] openssl dgst命令完成SHA256哈希校验和RSA数字签名
  8. 乳腺癌检测_逻辑回归
  9. php用putty安装吗,为什么通过Putty的SSH命令与PHP的phpseclib不同?
  10. 用excel制作门店流水日常
  11. 南京中山陵环卫工和游客当众互殴(图)
  12. 抖音小程序支付开发流程和实现
  13. 人工智能在金融行业的应用
  14. PostgreSQL下载和安装教程
  15. 二维码怎么做到微信防封_分享在微信内做推广微信链接被屏蔽怎么解决,微信域名防封的技术分析
  16. macos系统镜像iso_我们一起来安装----虚拟机安装macOS
  17. PTA(每日一题)7-59 武林盟主
  18. Wi-Fi Display
  19. python--敲击木鱼积累功德小项目(更新版(2))
  20. python 过滤相似图片_Python过滤纯色图片,挑选视频封面

热门文章

  1. vs2015已停止工作,最新修复方法
  2. C语言计算礼炮声响次数(穷举和递推)
  3. 正则表达式学习(三)转义和反义
  4. 对折纸张 从上往下打印
  5. 线路负荷较小时,线路元件是一个感性无功电源。为什么?
  6. P2598 [ZJOI2009]狼和羊的故事(网络流)
  7. 前端最流行的 10 大顶级开源项目
  8. 那个即将掌舵阿里巴巴的张勇,是马云的超级粉丝!
  9. 为 BeagleBone Black 安装一个操作系统
  10. dell灵越7370 U盘装机 BIOS设置