UVA 11922 - Permutation Transformer
题目链接
题意:给一个序列,每次操作选择(a,b),把(a,b)序列翻转之后加到末尾,求最终序列
思路:Splay的应用,多一个flip标记,在开头多一个虚拟的0结点,这样每次就利用Splay进行分裂合并即可
代码:
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <vector>
using namespace std;
struct SplayTree {
struct Node {
Node *ch[2];
int v, s;
int flip;
Node() {
ch[0] = ch[1] = NULL;
......
阅读全文