這道題顯然平衡樹,splay,treap什麼的隨便切
然而我不想打,決定水過這道題
把空間開3倍,樹狀陣列維護它前面的樹的個數,開個id陣列記錄位置
找乙個數排名直接二分加求字首和,log^2的搞一搞
把乙個數放在頂/低 直接丟在當前頂/低的前後就可以了不然開3倍陣列幹嘛
c常數小堪比log的平衡樹居然還快一些
# include
# define rg register
# define il inline
# define fill(a, b) memset(a, b, sizeof(a))
using namespace std;
typedef
long
long ll;
const
int _(3e5 + 10), inf(2e9), pf(1e5);
il ll read()
int n, m, t[_], id[_], a[_];
char opt[10];
il void add(rg int x, rg int v)
il int query(rg int x)
il int find(rg int x)
return l;
}int main(rg int argc, rg char *argv)
else
if(opt[0] == 'b')
else
if(opt[0] == 'i')
else
if(opt[0] == 'a') printf("%d\n", query(id[x]) - 1);
else printf("%d\n", a[find(x)]);
}return
0;}
題解 ZJOI2006 書架
link 小 t 有乙個很大的書櫃。這個書櫃的構造有些獨特,即書櫃裡的書是從上至下堆放成一列。她用 1 到 n 的正整數給每本書都編了號。小 t 在看書的時候,每次取出一本書,看完後放回書櫃然後再拿下一本。由於這些書太有吸引力了,所以她看完後常常會忘記原來是放在書櫃的什麼位置。不過小 t 的記憶力是...
ZJOI2006 書架 平衡樹
題目描述 小t有乙個很大的書櫃。這個書櫃的構造有些獨特,即書櫃裡的書是從上至下堆放成一列。她用1到n的正整數給每本書都編了號。小t在看書的時候,每次取出一本書,看完後放回書櫃然後再拿下一本。由於這些書太有吸引力了,所以她看完後常常會忘記原來是放在書櫃的什麼位置。不過小t的記憶力是非常好的,所以每次放...
ZJOI2006 物流運輸
description 物流公司要把一批貨物從碼頭a運到碼頭b。由於貨物量比較大,需要n天才能運完。貨物運輸過程中一般要轉停好幾個碼頭。物流公司通常會設計一條固定的運輸路線,以便對整個運輸過程實施嚴格的管理和跟蹤。由於各種因素的存在,有的時候某個碼頭會無法裝卸貨物。這時候就必須修改運輸路線,讓貨物能...