CF1601B Frog Traveler

题目大意

有一只青蛙掉到了井底,这口井被划分为 $n+1$ 个位置,井口是 $0$ ,井
底是 $n$ 。

现在这只青蛙想跳出这口井,假设它当前在位置 $i$,则它可以向上跳 $0$ 到 $a_i$ 的任意整数距离。

又因为井口很滑,所以如果青蛙跳到了位置 $j$,则它会往下滑 $b_j$ 个位置。

给定 $n, a, b$,你需要求出青蛙最少跳多少次才能跳出井(跳到位置 $0$ ),并给出方案。

$1 \leq n \leq 3 \times 10^5$

题目大意

你有一棵有 $n$ 个节点的有根(根为 $1$ )树,你要对对其进行 $m$ 次操作。

每次操作给出两个数 $a_i, b_i$,你要往以 $a_i, b_i$ 为根的子树内每个点的集合里加入数 $i$。

问最后对于每个点有多少个点(不包括自己)的集合与其交集非空。

$1 \leq n, m \leq 10^5$

题目大意

给定一颗有根树,根为 $1$ ,有以下两种操作:

  1. 标记操作:对某个结点打上标记。(在最开始,只有结点 $1$ 有标记,其他结点均无标记,而且对于某个结点,可以打多次标记。)

  2. 询问操作:询问某个结点最近的一个打了标记的祖先。(这个结点本身也算自己的祖先)

$1 \leq n, q \leq 10^5 $

洛谷4314 cpu监控

首先我们可以想到一个显而易见的思路:每个节点维护$\mathrm{add,set}$的$tag$,维护最大值$max$和历史最大值$Max$,然后像正常的线段树一样维护

然后你惊讶的发现你只拿到二十分(只有$Q$的部分分)

为什么呢?我们发现有些$tag$,他还没有来得及被更新就被覆盖了..而这些$tag$本来能改变世界更新答案

所以我们可以维护两个$tag$:$\mathrm{Add,Set}$表示该节点从上次下放到目前的最大$add$和$set$值

然后我们就可以快乐的用这些$tag$来维护答案了

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×