splay 模板 洛谷3369

2022-05-12 12:28:13 字數 1986 閱讀 1986

題目描述

插入 xx 數

刪除 xx 數(若有多個相同的數,因只刪除乙個)

查詢 xx 數的排名(排名定義為比當前數小的數的個數 +1+1 。若有多個相同的數,因輸出最小的排名)

查詢排名為 xx 的數

求 xx 的前驅(前驅定義為小於 xx ,且最大的數)

求 xx 的後繼(後繼定義為大於 xx ,且最小的數)

輸入輸出格式

輸入格式:

第一行為 nn ,表示操作的個數,下面 nn 行每行有兩個數 optopt 和 xx , optopt 表示操作的序號( 1 \leq opt \leq 6 1≤opt≤6 )

輸出格式:

對於操作 3,4,5,63,4,5,6 每行輸出乙個數,表示對應答案

輸入輸出樣例

輸入樣例#1: 複製

10 1 106465

4 1

1 317721

1 460929

1 644985

1 84185

1 89851

6 81968

1 492737

5 493598

輸出樣例#1: 複製

106465

84185

492737

說明時空限制:1000ms,128m

1.n的資料範圍: n \leq 100000 n≤100000

2.每個數的資料範圍: [-^7, ^7][−10

7 ,10 7 ]

#include#include#includeusing namespace std;

const

int maxn = 100005;

const

int inf = 0x7f7f7f7f;

struct nodenode[maxn];

int n,cnt,points;

inline void update(int x)

inline bool jud(int x)

inline void connect(int x,int f,int son)

inline void rotate(int x)

inline void splay(int at,int

to) else

}}inline int crepoint(int x,int f)

inline void destroy(int x)

inline int find(int v)

int nxt=vnow].v?0:1;

if(!node[now].ch[nxt]) return 0;

now=node[now].ch[nxt];

} }inline int build(int x)

else

int nxt=xnow].v?0:1;

if(!node[now].ch[nxt])

now=node[now].ch[nxt];}}

return 0;

}inline void push(int x)

inline void pop(int v)

if(!node[deal].ch[0])

else

destroy(deal);

}int rank(int x)

}if(now) splay(now,node[0].ch[1]);

return 0;

}int atrank(int x)

}splay(now,node[0].ch[1]);

return node[now].v;

}inline int lower(int x)

return res;

}inline int upper(int x)

return res;

}int main()

return 0;

}

洛谷 3369 模板 普通平衡樹

題目描述 您需要寫一種資料結構 可參考題目標題 來維護一些數,其中需要提供以下操作 插入x數 刪除x數 若有多個相同的數,因只刪除乙個 查詢x數的排名 排名定義為比當前數小的數的個數 1。若有多個相同的數,因輸出最小的排名 查詢排名為x的數 求x的前驅 前驅定義為小於xx,且最大的數 求x的後繼 後...

洛谷P3369 模板 普通平衡樹

本蒟蒻最近剛剛學會平衡樹,特來寫篇部落格以加深印象。我的意思是若寫的不好望各位奆佬多多包含!插入 x 數 刪除 x 數 若有多個相同的數,因只刪除乙個 查詢 x 數的排名 排名定義為比當前數小的數的個數 1 若有多個相同的數,因輸出最小的排名 查詢排名為 x 的數 求 x 的前驅 前驅定義為小於 x...

洛谷P3369 模板 普通平衡樹

插入x數 刪除x數 若有多個相同的數,因只刪除乙個 查詢x數的排名 排名定義為比當前數小的數的個數 1。若有多個相同的數,因輸出最小的排名 查詢排名為x的數 求x的前驅 前驅定義為小於x,且最大的數 求x的後繼 後繼定義為大於x,且最小的數 輸入格式 第一行為n,表示操作的個數,下面n行每行有兩個數...