hysbz - 3224
tyvj 1728 普通平衡樹
time limit:10000ms
memory limit:131072kb
64bit io format:%lld & %llu
submit
status
use mathjax to parse formulas
description
您需要寫一種資料結構(可參考題目標題),來維護一些數,其中需要提供以下操作:
1. 插入x數
2. 刪除x數(若有多個相同的數,因只刪除乙個)
3. 查詢x數的排名(若有多個相同的數,因輸出最小的排名)
4. 查詢排名為x的數
5. 求x的前驅(前驅定義為小於x,且最大的數)
6. 求x的後繼(後繼定義為大於x,且最小的數)
input
第一行為n,表示操作的個數,下面n行每行有兩個數opt和x,opt表示操作的序號(1<=opt<=6)
output
對於操作3,4,5,6每行輸出乙個數,表示對應答案
sample input
101 106465
4 11 317721
1 460929
1 644985
1 84185
1 89851
6 81968
1 492737
5 493598
sample output
10646584185
492737
hint
1.n的資料範圍:n<=100000
2.每個數的資料範圍:[-1e7,1e7]
資料如下
**:
#include
#include
using
namespace __gnu_pbds;
using
namespace std;
using
namespace std::tr1;
typedef
long
long ll;
typedef
tree;
int offset =
1e7+5;
intmain
()else
if(op ==2)
else
if(op ==3)
else
if(op ==4)
printf
("%d\n"
,(*t.
find_by_order
(x-1
)>>32)
- offset);
else
if(op ==5)
else
}return0;
}
Tyvj 1728 普通平衡樹
time limit 10 sec memory limit 128 mb submit 13242 solved 5675 submit status discuss 您需要寫一種資料結構 可參考題目標題 來維護一些數,其中需要提供以下操作 1.插入x數 2.刪除x數 若有多個相同的數,因只刪除乙...
Tyvj 1728 普通平衡樹
您需要寫一種資料結構 可參考題目標題 來維護一些數,其中需要提供以下操作 1.插入x數 2.刪除x數 若有多個相同的數,因只刪除乙個 3.查詢x數的排名 若有多個相同的數,因輸出最小的排名 4.查詢排名為x的數 5.求x的前驅 前驅定義為小於x,且最大的數 6.求x的後繼 後繼定義為大於x,且最小的...
3224 Tyvj 1728 普通平衡樹
您需要寫一種資料結構 可參考題目標題 來維護一些數,其中需要提供以下操作 1.插入x數 2.刪除x數 若有多個相同的數,因只刪除乙個 3.查詢x數的排名 若有多個相同的數,因輸出最小的排名 4.查詢排名為x的數 5.求x的前驅 前驅定義為小於x,且最大的數 6.求x的後繼 後繼定義為大於x,且最小的...