BZOJ Tyvj 1729 文藝平衡樹

2022-05-14 05:24:30 字數 1240 閱讀 1454

您需要寫一種資料結構(可參考題目標題),來維護乙個有序數列,其中需要提供以下操作:翻轉乙個區間,例如原有序序列是5 4 3 2 1,翻轉區間是[2,4]的話,結果是5 2 3 4 1 

第一行為n,m n表示初始序列有n個數,這個序列依次是(1,2……n-1,n)  m表示翻轉操作次數

接下來m行每行兩個數[l,r] 資料保證 1<=l<=r<=n 

輸出一行n個數字,表示原始序列經過m次變換後的結果 

5 31 3

1 31 4

4 3 2 1 5

n,m<=100000

序列翻轉裸題。。。又是裸題

1 #include2 #include3

using

namespace

std;

4int

n,m,sz,rt;

5int fa[100005],c[100005][2],id[100005];6

int size[100005];7

bool rev[100005];8

9void pushup(int

k)13

void rotate(int x,int &k)

2223

void splay(int x,int &k)

30rotate(x,k);31}

32}3334

void pushdown(int

k)41}42

43int find(int k,int

rk)50

51void rever(int l,int

r)57

58void build(int l,int r,int

f)67

int mid=(l+r)>>1;now=id[mid];

68 build(l,mid-1,mid);build(mid+1

,r,mid);

69 fa[mid]=last;pushup(mid);

70 c[last][mid>=f]=now;71}

7273

intmain()

82for (int i=2;i<=n+1;i++) printf("

%d ",find(rt,i)-1

);83 }

您需要寫一種資料結構(可參考題目標題),來維護乙個有序數列,其中需要提供以下操作:翻轉乙個區間,例如原有序序列是5 4 3 2 1,翻轉區間是[2,4]的話,結果是5 2 3 4 1 

Tyvj 1729 文藝平衡樹

題面如下 time limit 1 sec memory limit 128 mb 您需要寫一種資料結構 可參考題目標題 來維護乙個有序數列,其中需要提供以下操作 翻轉乙個區間,例如原有序序列是5 4 3 2 1,翻轉區間是 2,4 的話,結果是5 2 3 4 1 第一行為n,m n表示初始序列有n...

tyvj 1729 文藝平衡樹

文藝平衡樹 fromadmin 背景 background 此為平衡樹系列第二道 文藝平衡樹 描述 description 您需要寫一種資料結構 可參考題目標題 來維護乙個有序數列,其中需要提供以下操作 翻轉乙個區間,例如原有序序列是5 4 3 2 1,翻轉區間是 2,4 的話,結果是5 2 3 4...

bzoj3223 Tyvj 1729 文藝平衡樹

傳送門 description input 第一行為n,m n表示初始序列有n個數,這個序列依次是 1,2 n 1,n m表示翻轉操作次數 接下來m行每行兩個數 l,r 資料保證 1 l r n output 輸出一行n個數字,表示原始序列經過m次變換後的結果 sample input 5 31 3...