這是一道經典的splay模板題——文藝平衡樹。
輸入格式:
第一行為n,m n表示初始序列有n個數,這個序列依次是(1,2, \cdots n-1,n)(1,2,⋯n−1,n) m表示翻轉操作次數
接下來m行每行兩個數 [l,r][l,r] 資料保證 1 \leq l \leq r \leq n1≤l≤r≤n
輸出格式:
輸出一行n個數字,表示原始序列經過m次變換後的結果
輸入樣例#1: 複製
5 31 31 3
1 4
輸出樣例#1: 複製
4 3 2 1 5
n, m \leq 100000n,m≤100000
1 #include2 #include34using
namespace
std;56
const
int maxn = 100100;7
int fa[maxn],ch[maxn][2
],tag[maxn],siz[maxn],data[maxn];
8int
root,tn,n;
910 inline char
nc()
14 inline int
read()
22 inline int son(int
x) 25 inline void pushup(int
x) 28 inline void pushdown(int
x) 35
}36 inline void rotate(int
x) 43 inline void splay(int x,int
rt) 51}
52}53 inline int getkth(int
k) 63}64
}65void reverse(int l,int
r) 70
int build(int l,int
r) 80
void print(int
x) 87
intmain()
95ch[n+2][1]=0,root=1;
*/96
int m =read();
97while (m--)
101print(root);
102return0;
103 }
P3391 模板 文藝平衡樹
題目鏈結 題目描述 您需要寫一種資料結構 可參考題目標題 來維護乙個有序數列。其中需要提供以下操作 翻轉乙個區間,例如原有序序列是 543 215 4 3 2 1 5432 1,翻轉區間是 2,4 2,4 2,4 的話,結果是 523 415 2 3 4 1 52341。輸入格式 第一行兩個正整數 ...
P3391 模板 文藝平衡樹(Splay)
題目背景 這是一道經典的splay模板題 文藝平衡樹。題目描述 輸入輸出格式 輸入格式 第一行為n,m n表示初始序列有n個數,這個序列依次是 1,2,n 1,n m表示翻轉操作次數 接下來m行每行兩個數 l,r 資料保證 1 l r n 輸出格式 輸出一行n個數字,表示原始序列經過m次變換後的結果...
P3391 模板 文藝平衡樹(Splay)
基於這道題的關於splay的講解 將由這篇部落格開始。include include include include include include include include include include include include define lowbit x x x define ...