題意:傳送門
題解:這個題要麼這個時刻寵物多,要麼這個時刻顧客多,然後可以用個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 而他也給每個處在收養場的寵物乙個特點值。這...