BZOJ 1208 寵物收養所

2022-05-13 10:12:52 字數 1071 閱讀 5220

bzoj 1208 傳送門

求前驅後繼,很明顯的平衡樹操作

其實$set$完全可以做,主要是為了複習下$treap$結果調了好久……

注意:在寫平衡樹刪除時一定要記得考慮刪除數不存在的情況

特別是$treap$,如果訪問到空要直接返回否則死迴圈……

#include using

namespace

std;

#define x first

#define y secondtypedef

long

long

ll;typedef pair

p;typedef

double

db;const

int maxn=1e5+10,mod=1e6,inf=1

<<30;

namespace

treap

void rotate(int &x,int

f)

void insert(int &x,int

k)

int nxt=k>val[x];insert(s[x][nxt],k);

if(pri[x]>pri[s[x][nxt]]) rotate(x,nxt);

pushup(x);

}int pre(int &x,int

k)

int nxt(int &x,int

k)

void del(int &x,int

k)

int nxt=pri[s[x][0]]1

]]; rotate(x,nxt^1

);del(s[x][nxt],k);

}else del(s[x][k>val[x]],k);

pushup(x);

}}using

namespace

treap;

intn,x,y,cur,cnt,res;

intmain()

}printf("%d

",res);

return0;

}

BZOJ 1208, 寵物收養所

傳送門 編寫乙個支援插入 刪除元素,查詢數列中最接近某值的元素的資料結構。保證沒有重複元素存在出現在樹中。treap和splay都可做。splay苦手選擇treap,然而寫得奇醜無比。查詢最接近某值的元素可以將該值插入樹中查詢前驅與後繼,後比較。查詢完以後再刪掉。include include co...

Bzoj1208 寵物收養所

最近,阿q開了一間寵物收養所。收養所提供兩種服務 收養被主人遺棄的寵物和讓新的主人領養這些寵物。每個領養者都希望領養到自己滿意的寵物,阿q根據領養者的要求通過他自己發明的乙個特殊的公式,得出該領養者希望領養的寵物的特點值a a是乙個正整數,a 2 31 而他也給每個處在收養所的寵物乙個特點值。這樣他...

Bzoj1208 寵物收養所

最近,阿q開了一間寵物收養所。收養所提供兩種服務 收養被主人遺棄的寵物和讓新的主人領養這些寵物。每個領養者都希望領養到自己滿意的寵物,阿q根據領養者的要求通過他自己發明的乙個特殊的公式,得出該領養者希望領養的寵物的特點值a a是乙個正整數,a 2 31 而他也給每個處在收養所的寵物乙個特點值。這樣他...