ZJOI2006 書架(樹狀陣列水過)

2021-08-14 08:19:07 字數 924 閱讀 1246

這道題顯然平衡樹,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天才能運完。貨物運輸過程中一般要轉停好幾個碼頭。物流公司通常會設計一條固定的運輸路線,以便對整個運輸過程實施嚴格的管理和跟蹤。由於各種因素的存在,有的時候某個碼頭會無法裝卸貨物。這時候就必須修改運輸路線,讓貨物能...