都是bst的基本操作,只要實現新增,刪除,查詢基本就行了。由於在同一時間在收養所裡的要麼都是寵物,要麼都是收養者,因此用splay維護在收養所中的人(寵物)的值,然後根據情況插入或者查詢就行了。
**:
#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f
#define inf 0x3fffffffffffffffll
#define eps 1e-9
#define pi acos(-1.0)
using namespace std;
typedef long long ll;
const int maxn=100000+10;
const int mod=1000000;
int ch[maxn][2],pre[maxn],val[maxn],root,tot;
void newnode(int &rt,int fa,int v)
void rotate(int x,int kind)
void splay(int rt,int goal)
else}}
if(goal==0) root=rt;
}void insert(int v)
int rt=root,kind;
while(true)
{kind=val[rt]
Treap BZOJ 1208 寵物收養所
題目描述 最近,阿q開了一間寵物收養所。收養所提供兩種服務 收養被主人遺棄的寵物和讓新的主人領養這些寵物。每個領養者都希望領養到自己滿意的寵物,阿q根據領養者的要求通過他自己發明的乙個特殊的公式,得出該領養者希望領養的寵物的特點值a a是乙個正整數,a 2 31 而他也給每個處在收養所的寵物乙個特點...
BZOJ 1208, 寵物收養所
傳送門 編寫乙個支援插入 刪除元素,查詢數列中最接近某值的元素的資料結構。保證沒有重複元素存在出現在樹中。treap和splay都可做。splay苦手選擇treap,然而寫得奇醜無比。查詢最接近某值的元素可以將該值插入樹中查詢前驅與後繼,後比較。查詢完以後再刪掉。include include co...
Bzoj1208 寵物收養所
最近,阿q開了一間寵物收養所。收養所提供兩種服務 收養被主人遺棄的寵物和讓新的主人領養這些寵物。每個領養者都希望領養到自己滿意的寵物,阿q根據領養者的要求通過他自己發明的乙個特殊的公式,得出該領養者希望領養的寵物的特點值a a是乙個正整數,a 2 31 而他也給每個處在收養所的寵物乙個特點值。這樣他...