20241015
来冲得更猛烈一点吧!
T1
容易想到最小生成树
跑完一遍之后继续加边,因为这条边联通的部分边都比他小,所以跟我有毛关系啊
直接加即可
T2
我们把每个信息放在时间轴上进行排序
不难发现影响 minmax 的只有最左端的信息
对于 bad 而言,每次加入一个信息判断其左右两个点是否能够同时满足
set维护即可
判断还怪麻烦的
对时间进行排序后,若前几个的位置都为0,可以选择不走
我操了大分讨
首先把点分为两类:一类是位置为 1 且时间在最前排的,其他分为另一类
当加入一个另类点时,需要考虑是否要将左侧点移动到右侧
判断合法性时需要额外和最左侧的点判断,左侧不需要判
对于Min
若存在一个左侧点使得它和上一位左侧点不同奇偶,则到他为止都不能弹出
否则判断距离输出即可
对于Max
同理,但是直接找到右侧第一个点判断即可
若没有右侧点,则输出inf
草了先写T3吧
T3
因为这是个子树查询问题,所以考虑dfs序+启发式合并,每次计算点数较少的一方
因为绝对值不是很好维护,所以考虑压到棵线段树上
对于两个点 $x,y$ ,不妨设 $a_y>a_x$,$b_y>b_x$ ,那么若有 $a_y-a_x>b_y-b_x$ ,那么有
$0>b_y-b_x-a_y+a_x$
我们发现一个很神奇的现象,若我们一开始时便在答案中加入 $a_y-a_x$ ,最后再加上数轴上小于0的部分那就恰好等于答案了
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 mygr main()!