bzoj 1208 傳送門
求前驅後繼,很明顯的平衡樹操作
其實$set$完全可以做,主要是為了複習下$treap$結果調了好久……
注意:在寫平衡樹刪除時一定要記得考慮刪除數不存在的情況
特別是$treap$,如果訪問到空要直接返回否則死迴圈……
#include usingnamespace
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 而他也給每個處在收養所的寵物乙個特點值。這樣他...