第五十六次

A

有解的话往直径端点走一定是一组解。

B

手玩一下,可以发现,令 $p\gets a_x$,对 $i\in(x,y)$ 依次执行:

  • 若 $p\operatorname{and}a_i\ne 0$,令 $p\gets p\operatorname{or}a_i$。

之后,若 $p\operatorname{and}a_y\ne 0$,则可达。

进一步地,令 $p$ 分别取 $a_x$ 二进制下每一位,得到的结果之 $\operatorname{or}$ 与原结果相同。

也就是说,只需要知道 $p$ 分解出的若干 $2^k$ 通过 $(x,y)$ 得到的结果,简化了问题。

在线段树的每个节点上维护 $c_k$ 表示 $2^k$ 通过该节点的结果,这样将 $p$ 分解就可以知道 $p$ 通过该节点的结果。

令 $p$ 依次通过 $(x,y)$ 分解出的每个节点,就可以知道 $p$ 通过 $(x,y)$ 的结果了。

C

按最后一次被打的时间、最后一次被打后是否空血把陨石划分成若干颜色段 $(l,r,t,0/1)$,

其中每个陨石均在 $t$ 时最后一次被打,且最后一次被打后均是 / 否空血。

注意到 $\forall(l,r,t,1),l=r$,所以可以额外维护出 $c_l$ 表示这个陨石最后一次被打后剩多少血。

考虑一只恐龙会让这些颜色段发生什么变化。让它从左往右依次通过每个颜色段:

  • 若当前颜色段形如 $(l,r,t,1)$,直接根据记录下的 $c_l$ 计算恐龙和这块陨石的血量变化即可。

  • 若当前颜色段形如 $(l,r,t,0)$,考虑恐龙能不能走完这个颜色段。
    如果能走完,那这些陨石最后一次被打的时间被更新为当前时间,且均被打成空血。
    否则二分出恐龙能走到的位置 $k$,则 $[l,k-1]$ 的陨石同上,$k$ 陨石形成颜色段 $(k,k,t,1)$,$[k+1,r]$ 的陨石不受影响。

现在问题变为给定 $l,r,t,T,h$,判断 $[l,r]$ 的陨石在 $t$ 时最后一次被打成空血后,$T$ 时到 $l$ 剩 $h$ 血的恐龙能否通过 $[l,r]$ 这些陨石,

也就是判断 $\sum\limits_{i=l}^r\min\{r_i(T-t),c_i\}$ 是否小于 $h$。

定义 $f_i(x)=\min\{r_ix,c_i\}=\begin{cases}r_ix&x\le\left\lfloor\dfrac{c_i}{r_i}\right\rfloor\\c_i&x>\left\lfloor\dfrac{c_i}{r_i}\right\rfloor\end{cases}$,问题变为求 $\sum\limits_{i=l}^rf_i(T-t)$。

令 $\Delta=T-t$,设 $f_i(\Delta)=a_i\Delta+b_i$(具体地,$a_i=\begin{cases}r_i&x\le\left\lfloor\dfrac{c_i}{r_i}\right\rfloor\\0&x>\left\lfloor\dfrac{c_i}{r_i}\right\rfloor\end{cases}$,$b_i=\begin{cases}0&x\le\left\lfloor\dfrac{c_i}{r_i}\right\rfloor\\c_i&x>\left\lfloor\dfrac{c_i}{r_i}\right\rfloor\end{cases}$),

则 $\sum\limits_{i=l}^rf_i(\Delta)=\sum\limits_{i=l}^ra_i\Delta+b_i=\Delta\sum\limits_{i=l}^ra_i+\sum\limits_{i=l}^rb_i$,只需求出代入 $\Delta$ 时的 $\sum\limits_{i=l}^ra_i$ 与 $\sum\limits_{i=l}^rb_i$。

令 $v_{i,j,0/1}$ 表示代入 $i$ 时的 $a_j,b_j$,可以发现序列 $v_i$ 只是在序列 $v_{i-1}$ 的基础上修改了所有 $i=\left\lfloor\dfrac{c_j}{r_j}\right\rfloor+1$ 的 $j$ 位置,于是可以主席树维护 $v$。

这样 $\sum\limits_{i=l}^ra_i=\sum\limits_{i=l}^rv_{\Delta,i,0},\sum\limits_{i=l}^rb_i=\sum\limits_{i=l}^rv_{\Delta,i,1}$,在 $v$ 上查区间和即可。

D

啥玩意,看不懂啊。

posted @ 2023-11-04 19:58  5k_sync_closer  阅读(2)  评论(0编辑  收藏  举报  来源