牛客红包OI赛 B 小可爱序列
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 小可爱序列的更多相关文章
- 牛客红包OI赛 C 小可爱表白
据说是个公式题. Code #include<cstdio> #include<cstring> #include<algorithm> using namespa ...
- 牛可乐发红包脱单OI赛 C 小可爱表白
打个暴力查一下OEIS,5min做完 出题人一开始把式子打错了,一开始的式子的结果为$n * (n + 3) * 2^{n - 3}$ 我们考虑化式子 首先考虑 $\sum\limits_{j = 1 ...
- 牛客编程巅峰赛S2第4场
牛客编程巅峰赛S2第4场 牛牛摆玩偶 题目描述 牛牛有\(n(2 \leq n \leq 10^5)(2≤n≤105)\)个玩偶,牛牛打算把这n个玩偶摆在桌子上,桌子的形状的长条形的,可以看做一维数轴 ...
- nowcoder(牛客网)OI测试赛2 解题报告
qwq听说是一场普及组难度的比赛,所以我就兴高采烈地过来了qwq 然后发现题目确实不难qwq.....但是因为蒟蒻我太蒻了,考的还是很差啦qwq orz那些AK的dalao们qwq 赛后闲来无事,弄一 ...
- 牛客网训练赛26D(xor)
题目链接:https://www.nowcoder.com/acm/contest/180/D 线性基的学习:https://www.cnblogs.com/vb4896/p/6149022.html ...
- 牛客小白月赛16 H 小阳的贝壳 (差分+线段树)
链接:https://ac.nowcoder.com/acm/contest/949/H来源:牛客网 题目描述 小阳手中一共有 n 个贝壳,每个贝壳都有颜色,且初始第 i 个贝壳的颜色为 colico ...
- 牛客假日团队赛5J 护城河 bzoj 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘 (凸包的周长)
链接:https://ac.nowcoder.com/acm/contest/984/J 来源:牛客网 护城河 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...
- 牛客小白月赛16 D 小阳买水果 (思维题)
链接:https://ac.nowcoder.com/acm/contest/949/D来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...
- 牛客小白月赛16 H小阳的贝壳 (线段树+差分数组)
链接:https://ac.nowcoder.com/acm/contest/949/H来源:牛客网 题目描述 小阳手中一共有 n 个贝壳,每个贝壳都有颜色,且初始第 i 个贝壳的颜色为 colico ...
随机推荐
- LINUX 线程
1.使用进程技术的优势(1)CPU时分复用,单核心CPU可以实现宏观上的并行(2)实现多任务系统需求(多任务的需求是客观的)2.进程技术的劣势(1)进程间切换开销大(2)进程间通信麻烦而且效率低3.解 ...
- 科学计算三维可视化---Mlab基础(基于Numpy数组的绘图函数)
Mlab了解 Mlab是Mayavi提供的面向脚本的api,他可以实现快速的三维可视化,Mayavi可以通过Mlab的绘图函数对Numpy数组建立可视化. 过程为: .建立数据源 .使用Filter( ...
- ASP.NET IOC之 AutoFac的认识和结合MVC的使用
这几天研究了解发现AutoFac是个牛X的IOC容器,是.NET领域比较流行的IOC框架之一,传说是速度最快的,~ 据相关资料,相关学习,和认知,遂做了一些整理 优点: 它是C#语言联系很紧密,也就是 ...
- 容器启动报iptables错误
# systemctl stop docker # iptables -t nat -F # ifconfig docker0 down # brctl delbr docker0 # 命令由br ...
- 转【Zabbix性能调优:配置优化】
转载:https://sre.ink/zabbix-turn-conf/ #通过日志可以分析当前服务状态.LogFile=/tmp/zabbix_server.log #日志文件路径.LogFileS ...
- [整理]标准C中的"布尔"类型
C语言提供的基本数据类型:char , int ,float, double. 为什么没有其他语言中常见bool布尔数据类型呢? 1.在标准C语言(ANSI C)中并没有bool数据类型 标准C中,表 ...
- 鸟哥的书——ubuntu命令
纯粹按着鸟哥的书上的基本命令打一遍,不喜勿喷! Chapter5.首次登录 一.基础命令: 1.显示时间和日期的命令:date dzhwen@deng:~$ date 2014年 02月 23日 星期 ...
- Spring3.2 Contorller单元测试参数问题: java.lang.NoSuchMethodException
使用3.2做单元测试的时候发现这个问题,因为之前都是用3.0中的配置适配器使用AnnotationMethodHandlerAdapter,到3.2中升级为RequestMappingHandlerA ...
- Android Dalvik和JVM的区别
JVM运行的Java字节码,它从.class文件或Jar包中加载字节码然后执行: Dalvik 运行的是 dex 文件(Dalvik Executable),生成APK时,Dx工具把所有.class文 ...
- 【AtCoder Grand Contest 012C】Tautonym Puzzle [构造]
Tautonym Puzzle Time Limit: 50 Sec Memory Limit: 256 MB Description 定义一个序列贡献为1,当且仅当这个序列 由两个相同的串拼接而成 ...