分析
我们发现,在这么多操作之中,R翻转是最难处理的。
那我们就先考虑如何将一个区间翻转。
splay?
这样可以拿到90分,如何拿到100分。
如何快速翻转一个区间,我们想到了双头队列,
对于翻转整个队列就是交换队头队尾。
我们将整个序列依次分为一个栈,左指针,一个双头队列,右指针,一个栈。
这样每一个操作就可以O(1)解决。
code
#include<cstdio>
#include<iostream>
#include<algorithm>
#include <cstring>
#include <string.h>
#include <cmath>
#include <math.h>
#define ll long long
#define N 4000003
#define db double
#define P putchar
#define G getc