2020牛客多校H题
题意:给Q次对一个multiset的操作:
- 放进一个权值x;
- 删除存在于multiset内部的一个权值x;
- 问一个权值x能否和multiset内的权值构成一个三角形。
于是,这就是一道分类讨论的题了;我们将要取的multiset中的元素定义为a、b(),然后我们考虑x和b的相对位置来进行考虑。
这时候只需要去找x之前两个小于等于x且最接近x的数即可,然后两者之和大于x就是满足条件的了。
这时候,我们可以用一个数据结构来维护大于等于x部分的值,找到一个满足这样的条件就可以了,所以就只需要维护每一个数减去它的前驱的最小值即可,这里就可以用离散化之后的权值线段树来维护一下了。
最后附上两组测试样例。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include