题目大意
有一个$n$个点$m$条边的无向联通图, 每条边有两个属性:长度$d$,海拔$h$
有$q$个询问,每个询问给定两个数$v$, $p$,你要找到一个节点$u$,其中$u$要满足$v$到$u$存在一条路径使得这条路径上的边海拔全部大于$p$,求所有可能的$u$到$1$的最短路长度的最小值
首先我们可以想到一个显而易见的思路:每个节点维护$\mathrm{add,set}$的$tag$,维护最大值$max$和历史最大值$Max$,然后像正常的线段树一样维护
然后你惊讶的发现你只拿到二十分(只有$Q$的部分分)
为什么呢?我们发现有些$tag$,他还没有来得及被更新就被覆盖了..而这些$tag$本来能改变世界更新答案
所以我们可以维护两个$tag$:$\mathrm{Add,Set}$表示该节点从上次下放到目前的最大$add$和$set$值
然后我们就可以快乐的用这些$tag$来维护答案了
Update your browser to view this website correctly. Update my browser now