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. Linux编程中 #define _XOPEN_SOURCE的作用

    [误解]#define _XOPEN_SOURCE决不是简单的宏定义它是使程序符合系统环境的不可缺少的部分 [概念]Glibc 所实现全部或部分规范下的功能有:1.ISO C: C语言国际标准. 2. ...

  2. LGP4588[JSOI2018]扫地机器人

    题解 需要先说明一点东西: 1 同一副对角线方向相同,共有$gcd(n,m)$条不同的副对角线,机器人的行为是一个$gcd(n,m)$的循环:: 如果左上方是$(1,1)$,容易看出所有的路径是从左或 ...

  3. Dubbo、Zookeeper集群搭建及Rose使用心得(二)

    上篇讲了一下配置,这次主要写一下这个框架开发的大概流程.这里以实现 登陆 功能为例. 一.准备工作 1.访问拦截器 用户在进行网站访问的时候,有可能访问到不存在的网页,所以,我们需要把这些链接重新定向 ...

  4. kaggle竞赛

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...

  5. rsync命令的基本使用

    rsync命令的基本使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. rsync服务软件是一款开源,高速的,数据同步(拷贝)工具. 一.rsync服务的特点 1>.本地拷贝 ...

  6. 关于Linux用户名

    1.创建/删除/修改用户名 useradd 选项 用户名其中各选项含义如下: 代码:-c comment 指定一段注释性描述.-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建 ...

  7. python学习笔记4--函数/全局变量/递归

    一.函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pasc ...

  8. MVC: Connection String

    背景: 之前项目使用的是DB first/Model first,现在要对EF升级的6.0,并且更换成Code first. 问题: 1. System.Data.Entity.Core.Metada ...

  9. 用CSS3写圆角(超简单)

    前缀: -moz(例如 -moz-border-radius)用于Firefox-webkit(例如:-webkit-border-radius)用于Safari和Chrome. CSS3圆角(所有的 ...

  10. Sparse Filtering简介

    当前很多的特征学习(feature learning)算法需要很多的超参数(hyper-parameter)调节, Sparse Filtering则只需要一个超参数--需要学习的特征的个数, 所以非 ...