链接:https://www.nowcoder.com/acm/contest/131/A
来源:牛客网

题目描述

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

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

在 P 次操作之后,ZZT 想知道队列中的元素的排列方式,由于他最近很忙,因此需要请你帮他解决这个问题。

输入描述:

第一行输入一个正整数 N,表示队列的大小。
第二行输入 N 个正整数,Q

1

, Q

2

, Q

3

, ... ..., Q

N

,Q

i

 表示队列中的第 i 个元素。保证这 N 个数是 N 的一个全排列。
第三行输入一个正整数 P,表示接下来要进行的操作次数。
接下来 P 行,第 i 行输入一个字符串 Si 以及一个正整数 Xi,表示一次操作。
1 ≤ N ≤ 105.
1 ≤ Qi ≤ N.
1 ≤ P ≤ 105.
S { “FIRST”, “LAST” }.
1 ≤ Xi ≤ 105.

输出描述:

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

输入例子:
4
4 2 1 3
3
FIRST 4
LAST 2
LAST 1
输出例子:
4 3 2 1

-->

示例1

输入

复制

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

输出

复制

4 3 2 1
题意:中文题很明了了,要求对一长度为n的=队列进行m次操作,将指定元素插在队头或者队尾
题解:我们用两个数组进行保存和一个set容器进行操作
先将数据和操作分别读入
因为我们可以知道,操作从前往后会将数据不断的往队列里面压缩,所以我们将操作存起来倒着操作
这样就可以保证元素的顺序
用set容器来维护,确保临时数组b中没有重复元素出现
代码如下
#include<bits/stdc++.h>
using namespace std;
#define LL long long
const int maxn=1e5+;
int a[maxn], b[maxn];
set<int> s;
char ins[maxn][];
int v[maxn];
int main(){
int n;
scanf("%d", &n);
for(int i=;i<n;i++)
scanf("%d", &a[i]);
int m;
scanf("%d", &m);
for(int i=;i<m;i++){
scanf("%s%d", ins[i], &v[i]);
}
int head=, tail=n-;
//从0开始的头部操作和从n-1开始的尾部操作,分别插入
//tips:操作完后b数组中可能有空的位置没有被占据 for(int i=m-;i>=;i--){
int val=v[i];
if(s.count(val)){
continue;
}
s.insert(val);
if(ins[i][]=='F'){
b[head++]=val;
}else{
b[tail--]=val;
}
} //我们将a中没有插入到b中的数组插入到b中
for(int i=;i<n;i++)
if(!s.count(a[i])){
b[head++]=a[i];
}
head=;
//重新插入覆盖,保证队列的完整性
for(int i=;i<n;i++)
if(b[i]!=){
a[head++]=b[i];
}
//格式要求很重要
for(int i=;i<head;i++)
printf("%d%c", a[i], i==n-?'\n':' '); return ;
}

牛客~~wannafly挑战赛19~A 队列的更多相关文章

  1. 牛客wannafly 挑战赛14 B 前缀查询(trie树上dfs序+线段树)

    牛客wannafly 挑战赛14 B 前缀查询(trie树上dfs序+线段树) 链接:https://ac.nowcoder.com/acm/problem/15706 现在需要您来帮忙维护这个名册, ...

  2. 牛客Wannafly挑战赛23 B.游戏

    游戏 题目描述 小N和小O在玩游戏.他们面前放了n堆石子,第i堆石子一开始有ci颗石头.他们轮流从某堆石子中取石子,不能不取.最后无法操作的人就输了这个游戏.但他们觉得这样玩太无聊了,更新了一下规则. ...

  3. 牛客网挑战赛19 B,C,F

    链接:https://www.nowcoder.com/acm/contest/131/B来源:牛客网 矩阵 M 包含 R 行 C 列,第 i 行第 j 列的值为 Mi,j. 请寻找一个子矩阵,使得这 ...

  4. 牛客 Wannafly 挑战赛26D 禁书目录 排列组合 概率期望

    原文链接https://www.cnblogs.com/zhouzhendong/p/9781060.html 题目传送门 - NowCoder Wannafly 26D 题意 放一放这一题原先的题面 ...

  5. 牛客Wannafly挑战赛26E 蚂蚁开会(树链剖分+线段树)

    传送门 题面描述 一颗n个节点的树,m次操作,有点权(该节点蚂蚁个数)和边权(相邻节点的距离). 三种操作: 操作1:1 i x将节点i的点权修改为x.(1 <= i <= n; 1 &l ...

  6. 牛客Wannafly挑战赛11E 白兔的刁难

    传送门 如果大力推单位根反演就可以获得一个 \(k^2logn\) 的好方法 \[ans_{t}=\frac{1}{k}\sum_{i=0}^{k-1}(w_k^{-t})^i(w_k^i+1)^n\ ...

  7. 牛客Wannafly挑战赛23F 计数(循环卷积+拉格朗日插值/单位根反演)

    传送门 直接的想法就是设 \(x^k\) 为边权,矩阵树定理一波后取出 \(x^{nk}\) 的系数即可 也就是求出模 \(x^k\) 意义下的循环卷积的常数项 考虑插值出最后多项式,类比 \(DFT ...

  8. 牛客 Wannafly挑战赛27 D 绿魔法师

    传送门 \(\color{green}{solution}\) 分析下,在\(1e5+1\)内,一个数的约数个数最多为\(2^{6}\)个,所以我们可以考虑枚举约数 复杂度\(O(N^{2^{6 \t ...

  9. [牛客Wannafly挑战赛27D]绿魔法师

    description newcoder 给你一个空的可重集合\(S\). \(n\)次操作,每次操作给出\(x\),\(k\),\(p\),执行以下操作: \(opt\ 1\):在S中加入x. \( ...

随机推荐

  1. Guava Cache 工具类 [ GuavaCacheUtil ]

    pom.xml <dependency> <groupId>com.google.guava</groupId> <artifactId>guava&l ...

  2. PHP 微信公众号真正正确的客服头像上传

    首先我们来看官方文档 这TM的搞笑呢 什么破玩意儿! 需要条件 1 需要有一个客服的账号 (废话) 2 一致jpg格式的图片(扯蛋) 完整流程 1 获取access_token 2获取账号 3 $ur ...

  3. Flask初学者:蓝图Blueprint

    蓝图这个名字好像就是根据单词Blueprint字面意思来,跟平常我们理解的蓝图完全挂不上钩,这里蓝图就是指Blueprint. 使用蓝图的好处是可以将不同功能作用的视图函数/类视图放到不同的模块中,可 ...

  4. Python学习之高级特性

    切片 在Python基础篇里,我们知道Python的可序列对象可以通过索引号(下标)来引用对象元素,索引号可以由0开始从左向右依次获取,可以从-1开始由右向左获取.这种方法可以帮助我们依次获取我们想要 ...

  5. 搭建一个简单的dns缓存服务器

    环境:linux 软件:bind97,bind97-utils, bind97-libs ip:192.168.192.130:192.168.192.131 -------------------- ...

  6. POJ 3977 折半枚举

    链接: http://poj.org/problem?id=3977 题意: 给你n个数,n最大35,让你从中选几个数,不能选0个,使它们和的绝对值最小,如果有一样的,取个数最小的 思路: 子集个数共 ...

  7. js简单的获取与输出

    js获取标签内容和输出内容到页面 获取: html: <select id="choiceSelect" onchange="changeImg()"&g ...

  8. 静态html引入js添加随机数后缀防止缓存

    在web项目开发中,页面引入js被修改时,为避免浏览器缓存引起的问题,在引入js时,给js名后面加上随机数,以保证每次都发送新的请求. 在jsp中,一般通过后台取随机数即可,代码如下: <scr ...

  9. Django笔记 —— 模型

    最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...

  10. Http状态码枚举(摘自 Microsoft 程序集 System.dll)

    // 摘要: // 包含为 HTTP 定义的状态代码的值. public enum HttpStatusCode { // 摘要: // 等效于 HTTP 状态 100. System.Net.Htt ...