HYSBZ 1208 寵物收養所 Splay

2021-06-20 12:43:46 字數 804 閱讀 3374

都是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 而他也給每個處在收養所的寵物乙個特點值。這樣他...