Description

链接:https://ac.nowcoder.com/acm/contest/224/B

来源:牛客网

”我愿意舍弃一切,以想念你,终此一生。“

”到后来,只能将记忆拼凑。“ ——QAQ

小可爱刚刚把KR的序列切开了,但是她还没有玩够,于是就又双叒叕打乱了佳佳刚刚买回来的序列。

但是还好,佳佳通过监控记录下来了小可爱的打乱方式,于是把小可爱送回家之后,现在佳佳要还原这个序列。

佳佳需要维护一个长度为n的序列,小可爱只用了以下两种操作:

a.将最后一个数挪到第一位

b.将序列第3位挪到第一位

你需要给出最后的序列

Solution

某人跟我说是链表

然后就没读题无脑做

然后TLE之后发现不能无脑做

然后有脑一下

Code

#include <stdlib.h>
#include <stdio.h>
#include <string.h> struct Node {
int v; Node *nxt, *pre;
Node(int _v, Node *_n = nullptr, Node *_p = nullptr) :
v(_v), nxt(_n), pre(_p) { }
} *head, *tail; void Delete(const Node* b, const Node* e = nullptr) {
if (not e) e = b;
b->pre->nxt = e->nxt;
e->nxt->pre = b->pre;
}
void InsertNxt(Node* p, Node* b, Node* e = nullptr) {
if (not e) e = b;
Node* Pre = p;
Node* Nxt = p->nxt;
Pre->nxt = b;
Nxt->pre = e;
b->pre = Pre;
e->nxt = Nxt;
}
void InsertPre(Node* p, Node* b, Node* e = nullptr) {
if (not e) e = b;
Node* Pre = p->pre;
Node* Nxt = p;
Pre->nxt = b;
Nxt->pre = e;
b->pre = Pre;
e->nxt = Nxt;
} void Sol1(int n) {
Node* Beg = tail, *End = tail->pre;
while (n--) { Beg = Beg->pre; }
Delete(Beg, End);
InsertNxt(head, Beg, End);
}
void sol2() {
Node *now = head->nxt->nxt->nxt;
Delete(now);
InsertNxt(head, now);
}
void Show() {
Node* now = head->nxt;
while (now != tail) {
printf("%d ", now->v);
now = now->nxt;
}
puts("");
} int main () {
int n, m;
scanf("%d%d", &n, &m);
int u;
tail = new Node(0); head = new Node(0);
tail->pre = head, head->nxt = tail;
for (int i = 1; i <= n; i += 1) {
scanf("%d", &u);
InsertPre(tail, new Node(u));
}
for (int i = 1; i <= m; i += 1) {
char ch; int u;
scanf("%d%c", &u, &ch);
if (ch == 'a') {
u %= n;
if (u) Sol1(u);
}
else {
u %= 3;
while(u--) sol2();
}
}
Show();
return 0;
}

牛客红包OI赛 B 小可爱序列的更多相关文章

  1. 牛客红包OI赛 C 小可爱表白

    据说是个公式题. Code #include<cstdio> #include<cstring> #include<algorithm> using namespa ...

  2. 牛可乐发红包脱单OI赛 C 小可爱表白

    打个暴力查一下OEIS,5min做完 出题人一开始把式子打错了,一开始的式子的结果为$n * (n + 3) * 2^{n - 3}$ 我们考虑化式子 首先考虑 $\sum\limits_{j = 1 ...

  3. 牛客编程巅峰赛S2第4场

    牛客编程巅峰赛S2第4场 牛牛摆玩偶 题目描述 牛牛有\(n(2 \leq n \leq 10^5)(2≤n≤105)\)个玩偶,牛牛打算把这n个玩偶摆在桌子上,桌子的形状的长条形的,可以看做一维数轴 ...

  4. nowcoder(牛客网)OI测试赛2 解题报告

    qwq听说是一场普及组难度的比赛,所以我就兴高采烈地过来了qwq 然后发现题目确实不难qwq.....但是因为蒟蒻我太蒻了,考的还是很差啦qwq orz那些AK的dalao们qwq 赛后闲来无事,弄一 ...

  5. 牛客网训练赛26D(xor)

    题目链接:https://www.nowcoder.com/acm/contest/180/D 线性基的学习:https://www.cnblogs.com/vb4896/p/6149022.html ...

  6. 牛客小白月赛16 H 小阳的贝壳 (差分+线段树)

    链接:https://ac.nowcoder.com/acm/contest/949/H来源:牛客网 题目描述 小阳手中一共有 n 个贝壳,每个贝壳都有颜色,且初始第 i 个贝壳的颜色为 colico ...

  7. 牛客假日团队赛5J 护城河 bzoj 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘 (凸包的周长)

    链接:https://ac.nowcoder.com/acm/contest/984/J 来源:牛客网 护城河 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...

  8. 牛客小白月赛16 D 小阳买水果 (思维题)

    链接:https://ac.nowcoder.com/acm/contest/949/D来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...

  9. 牛客小白月赛16 H小阳的贝壳 (线段树+差分数组)

    链接:https://ac.nowcoder.com/acm/contest/949/H来源:牛客网 题目描述 小阳手中一共有 n 个贝壳,每个贝壳都有颜色,且初始第 i 个贝壳的颜色为 colico ...

随机推荐

  1. python入门:1-100所有数的和

    #!/usr/bin/env python # -*- coding:utf-8 -*- #1-100所有数的和 """ 给x赋值为1,y赋值为0,while循环真,循环 ...

  2. Java虚拟机性能监控与调优

    1 基于JDK命令行工具的监控 1.1 JVM的参数类型 1.1.1 标准参数 在JVM的各个版本基本上保持不变,很稳定的. -help -server -client -version -showv ...

  3. supervisor 添加新配置不生效的问题

    supervisorctl reread supervisorctl reload (不运行这一步会导致启动不了) supervisorctl start xxx:* 提示:No config upd ...

  4. sql server查询数据库的大小和各数据表的大小

    查询出来的结果中各字段的详细说明参考MSDN资料:https://msdn.microsoft.com/zh-cn/library/ms188776.aspx 如果只是查询数据库的大小的话,直接使用以 ...

  5. openstack开发环境与代码测试

    一.openstack单组件开发环境 1.Python虚拟环境搭建 主要参考文献: https://virtualenv.pypa.io/en/latest/virtualenv.html 说明:Py ...

  6. mysql数据库脚本改为oracle脚本

    前段时间公司项目数据库需要从mysql转为oracle,所以需要修改下原有的mysql脚本. 有两种方式:第一种,使用工具进行两种数据库的转换.第二种,手动修改数据库脚本. 第二种方法很笨,但能学习下 ...

  7. bzoj千题计划119:bzoj1029: [JSOI2007]建筑抢修

    http://www.lydsy.com/JudgeOnline/problem.php?id=1029 把任务按截止时间从小到大排序 如果当前时间+当前任务耗时<=当前任务截止时间,把这个任务 ...

  8. 翻译: 星球生成 I

    翻译: 星球生成 I 本文翻译自Planet Generation - Part I 译者: FreeBlues 以下为译文: 概述 我一直是一个过程内容生成的爱好者, 它允许你创建一个甚至不断改变的 ...

  9. HDU 3032 multi-sg 打表找规律

    普通NIM规则加上一条可以分解为两堆,标准的Multi-SG游戏 一般Multi-SG就是根据拓扑图计算SG函数,这题打表后还能发现规律 sg(1)=1 sg(2)=2 sg(3)=mex{0,1,2 ...

  10. 记录第一次阿里云服务器部署java web工程的经历

    起因:测试一个微信小程序,发现所有的请求要求为https的形式,开发工具忽略后手机无法测试,故尝试配置. 准备:阿里云服务器一台 域名一个(解析在服务器)     tomcat7.0.54     j ...