做法:
如果收養者按照到來順序收養寵物的話,只要把寵物的特點值建立平衡樹,每次求收養者特點值前驅後繼與之絕對值相差較小的乙個。
這就是乙個set的簡單應用啦。
如果人和寵物互相選擇,可以用兩個平衡樹,實現起來有些麻煩。
但我們可以想到,人和寵物在此題本質等價,人和寵物都可能待在店裡等待。
那其實只要乙個平衡樹,再加乙個變數記錄一下當前樹中存的是人還是寵物即可,具體見**。
#include
#include
#include
#include
#include
using
namespace
std;
const
int inf=1e9;
const
int mod=1000000;
setst;
int ans;
void query(int x)else
ans%=mod;
}int main()else
if(a==op) st.insert(b);
else query(b);
}printf("%d",ans);
return
0;}
HNOI2004 寵物收養場
凡凡開了一間寵物收養場。收養場提供兩種服務 收養被主人遺棄的寵物和讓新的主人領養這些寵物。每個領養者都希望領養到自己滿意的寵物,凡凡根據領養者的要求通過他自己發明的乙個特殊的公式,得出該領養者希望領養的寵物的特點值a a是乙個正整數,a 2 31 而他也給每個處在收養場的寵物乙個特點值。這樣他就能夠...
HNOI2004 寵物收養場
題目描述 凡凡開了一間寵物收養場。收養場提供兩種服務 收養被主人遺棄的寵物和讓新的主人領養這些寵物。每個領養者都希望領養到自己滿意的寵物,凡凡根據領養者的要求通過他自己發明的乙個特殊的公式,得出該領養者希望領養的寵物的特點值a a是乙個正整數,a 2 31 而他也給每個處在收養場的寵物乙個特點值。這...
HNOI2004 寵物收養場 splay
題目描述 凡凡開了一間寵物收養場。收養場提供兩種服務 收養被主人遺棄的寵物和讓新的主人領養這些寵物。每個領養者都希望領養到自己滿意的寵物,凡凡根據領養者的要求通過他自己發明的乙個特殊的公式,得出該領養者希望領養的寵物的特點值a a是乙個正整數,a 2 31 而他也給每個處在收養場的寵物乙個特點值。這...