牛客:队列Q(思维)
题目链接
来源:牛客网
题目描述
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(思维)相关推荐
- 牛客 - 建通道(思维)
题目链接:点击查看 题目大意:给出每个点的权值为v[ i ],现在要求将 n 个点互相连通,以保证代价最小,点 i 和点 j 连接的代价为 lowbit( v[ i ] ^ v[ j ]) 题目分析: ...
- 牛客 - 捡金币(思维+二维前缀和+构造)
题目链接:点击查看 题目大意:给出一个n*m的矩阵,每个方格都有一个权值,现在给出q次询问,每次询问的格式是x,y,k,问与点(x,y)的曼哈顿距离不超过k的方格内的所有权值之和 题目分析:首先这个题 ...
- 牛客 - 双流机场(思维)
题目链接:点击查看 题目大意:给出一个n*m的有向图,每一行和每一列的方向都是相同的,现在给出每一行和每一列的方向,问给出的图是不是一个强联通图 题目分析:这个题目之前做过数据很小的版本,当时那个题目 ...
- (牛客腾讯思维编程题)编码编码分组打印下标题目分析
本题答案在这点击进入 假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa,aaaa, aaab, aaac, - ...
- 牛客 - 树上博弈(思维)
题目链接:点击查看 题目大意:给出一棵树,现在有两个人在玩一个游戏,两人依次在树上行走,只能走没有人的结点,无法行走的人失败,题目需要我们求出有多少个初始点对,对于先手而言是必胜的情况 题目分析:其实 ...
- 【牛客 - 373C】抓捕盗窃犯(连通图,思维,dfs 或 并查集)
题干: 链接:https://ac.nowcoder.com/acm/contest/373/C 来源:牛客网 Q市发生了一起特大盗窃案.这起盗窃案是由多名盗窃犯联合实施的,你要做的就是尽可能多的抓捕 ...
- 洛谷or牛客数据结构+算法
栈思想:先进后出 tips:栈里能放下标就放下标 (牛客)小c的计事本(直接用stack可以简化代码,且不会被自己绕晕,当时没意识到) (牛客)吐泡泡(没意识到用栈),(牛客)好串 1.后缀表达式(栈 ...
- 牛客练习赛75 D 减数游戏(队列优化(需要取模的)堆)
牛客练习赛75 D 减数游戏 思路:写一下式子可以发每次选择最小的两个数进行操作,最后得到的答案会是最大的,那我们可以将它放进一个最小堆中来维护,但是里面的数是需要取模的,当它取模的时候,将会变小.那 ...
- 【牛客 - 188C】水图(bfs树的直径,思维)
题干: 链接:https://ac.nowcoder.com/acm/contest/188/C 来源:牛客网 小w不会离散数学,所以她van的图论游戏是送分的 小w有一张n个点n-1条边的无向联通图 ...
最新文章
- awstats linux日志分析,(总结)Linux下使用awstats分析Nginx的日志详情
- Binary Watch二进制时间
- OO第四单元博客作业
- Android之用Handler实现主线程和子线程互相通信以及子线程和子线程之间的通信
- JAVA线程并发数量控制_线程同步工具(二)控制并发访问多个资源
- 分布式服务框架XXL-RPC
- [转] openssl dgst命令完成SHA256哈希校验和RSA数字签名
- 乳腺癌检测_逻辑回归
- php用putty安装吗,为什么通过Putty的SSH命令与PHP的phpseclib不同?
- 用excel制作门店流水日常
- 南京中山陵环卫工和游客当众互殴(图)
- 抖音小程序支付开发流程和实现
- 人工智能在金融行业的应用
- PostgreSQL下载和安装教程
- 二维码怎么做到微信防封_分享在微信内做推广微信链接被屏蔽怎么解决,微信域名防封的技术分析
- macos系统镜像iso_我们一起来安装----虚拟机安装macOS
- PTA(每日一题)7-59 武林盟主
- Wi-Fi Display
- python--敲击木鱼积累功德小项目(更新版(2))
- python 过滤相似图片_Python过滤纯色图片,挑选视频封面