题目大意
有一只青蛙掉到了井底,这口井被划分为 $n+1$ 个位置,井口是 $0$ ,井
底是 $n$ 。
现在这只青蛙想跳出这口井,假设它当前在位置 $i$,则它可以向上跳 $0$ 到 $a_i$ 的任意整数距离。
又因为井口很滑,所以如果青蛙跳到了位置 $j$,则它会往下滑 $b_j$ 个位置。
给定 $n, a, b$,你需要求出青蛙最少跳多少次才能跳出井(跳到位置 $0$ ),并给出方案。
$1 \leq n \leq 3 \times 10^5$
首先我们可以想到一个显而易见的思路:每个节点维护$\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