ABC273 E~G

E:

考虑维护当前所在位置的指针。

设当前点为 u

对于第一个操作,我们可以将 u 新增一个儿子 x,并将指针转移到 x

对于第二个操作,把指针转移到 fau 即可。

对于第三个操作,我们可以开一个 map,将点 u 放到编号为 xmap 中。

对于第四个操作,将指针转移到 mapx 即可。

时间复杂度 O(QlogQ)

Code

F:

离散化后区间 DP,类似关路灯

Code

G:

如果 RiCi,显然答案是 0

接下来假设都满足 Ri=Ci

我们一行一行的填下去,当填到第 i 行的时候,需要满足以下条件:

  • Nj=1Ai,j=Ri
  • j,Ci,j=Cjik=1Ak,j0

Ci,j 就是填到第 i 行第 j 列还能填的。

注意到最终合法的状态就是填完 N 行之后所以的 CN,j 都为 0

fi,x 表示填了前 i 行并且目前有 xj 满足 Ci,j=2 的方案数。

y 为目前有 yj 满足 Ci,j=1

则有

Nj=1Ci,j=y+2x

那么

y=Nj=1Ci,j2x

                     =Nj=1(Cjik=1Ak,j)2x

                         =Nj=1CjNj=1ik=1Ak,j2x

                         =Nj=1Cjik=1Nj=1Ak,j2x

                =Nj=1Cjik=1Rk2x

所以 y 就能用 x 表示了。

x0 表示 j 的数量满足 C0,j=Cj=2

则一开始 f0,x0=1,其余均为 0

然后考虑转移。

如果 Ri=0,则有

fi,x=fi1,x1

如果 Ri=1,则有

fi,x=fi1,x+1×(x+1)+fi1,x×(y+1)

如果 Ri=2,则有

fi,x=fi1,x+1×(x+1)+fi1,x+2×(x+22)+fi1,x×(y+22)+fi1,x+1×(x+1)y

最终答案就是 fN,0

时间复杂度 O(N2)

Code

posted @   Kobe303  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示