HNOI2004 寵物收養場 splay的應用

2021-08-27 05:54:44 字數 1218 閱讀 7021

題意:傳送門

題解:這個題要麼這個時刻寵物多,要麼這個時刻顧客多,然後可以用個cnt來表示出此刻是顧客樹還是寵物樹,然後在刪除這個點是不能用這個點的前驅與後繼這個函式了,不然t到爆啊,需要重新寫個函式,兩個還是有點區別呢?

附上**:

#includeusing namespace std;

const int maxn=8e4+5;

const int mod=1000000;

inline int read()

while(ch>='0'&&ch<='9')

return x*t;

}int root,tot;

struct node

t[maxn];

inline void pushup(int u)

inline void rotate(int x)

inline void splay(int x,int goal)

rotate(x);

}if(goal==0)

}inline void insert(int x)

if(u)else

t[u].ch[0]=t[u].ch[1]=0;

t[tot].ff=ff;

t[tot].val=x;

t[tot].cnt=1;

t[tot].size=1;

}splay(u,0);

}inline void find(int x)

while(t[u].ch[x>t[u].val]&&x!=t[u].val)

splay(u,0);

}inline int next(int x,int f)

if(t[u].val<=x&&!f)

u=t[u].ch[f];

while(t[u].ch[f^1])

return u;

}inline int next_une(int x,int f)

if(t[u].val1)else

}inline int kth(int x)

elseelse}}

}int main()

if(cnt>0)elseelse}}

if(cnt<0)elseelse}}

cnt=cnt+(k==0?1:-1);

}printf("%d\n",ans);

return 0;

}

HNOI2004 寵物收養場

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

HNOI2004 寵物收養場

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

HNOI2004 寵物收養場 splay

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