专栏文章

题解:CF2062E2 The Game (Hard Version)

CF2062E2题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqcuxy9
此快照首次捕获于
2025/12/04 02:43
3 个月前
此快照最后确认于
2025/12/04 02:43
3 个月前
查看原文
若对任意 wv>wuw_v>w_u,总有 vsubtreeuv \in \text{subtree}_u,选 uu 者必败,我们称 uu坏点
对于 E1,选 ww 最大的不坏点即可,此时对手只能选坏点。
E1 策略告诉我们,只要对方可以选不坏点,我们必败。
所以 E2 策略是:选择迫使对手只能选坏点的点。
假设这样的点为点 uu,则对任意 wv>wuw_v>w_u
  • 要么 vvuu 子树内。
  • 要么对任意 wt>wvw_t>w_v
    1. ttuu 子树内。
    2. ttvv 子树内。
我们可以将第二点重写为:
  • 对任意 wt>wvw_t>w_vtt 不在 vv 子树内:ttuu 子树内。
g=lca(t)g=\text{lca}(t),便可进一步重写为:
  • gguu 子树内。
(顺便提一嘴,求 gg 就是求树上点集的 lca\text{lca},直接找点集里 dfndfn 最小最大的两个点,取 lca\text{lca} 即可。)
于是一个点满足 E2 策略可以写成下面的形式:
(v1subtreeu or g1subtreeu) and (v2subtreeu or g2subtreeu) and \begin{aligned} &(v_1 \in \text{subtree}_u \text{ or } g_1 \in \text{subtree}_u) \\ \text{ and } &(v_2 \in \text{subtree}_u \text{ or } g_2 \in \text{subtree}_u) \\ \text{ and } &\dots \end{aligned}
上面的式子可以进行这样的合并:
(v1subtreeu or g1subtreeu) and (v2subtreeu or g2subtreeu)deeper(lca(v1,v2),lca(v1,g2))subtreeu or deeper(lca(g1,v2),lca(g1,g2))subtreeu\begin{aligned} &(v_1 \in \text{subtree}_u \text{ or } g_1 \in \text{subtree}_u) \\ \text{ and } &(v_2 \in \text{subtree}_u \text{ or } g_2 \in \text{subtree}_u) \\ \end{aligned} \Leftrightarrow \begin{aligned} &\text{deeper}(\text{lca}(v_1,v_2),\text{lca}(v_1,g_2)) \in \text{subtree}_u\\ \text{ or } &\text{deeper}(\text{lca}(g_1,v_2),\text{lca}(g_1,g_2)) \in \text{subtree}_u \end{aligned}
其中 deeper(u.v)\text{deeper}(u.v) 代表 u,vu,v 中深度更大的点。
这样所有 vvuu 产生的约束最后都会合并为 (asubtreeu or bsubtreeu)(a \in \text{subtree}_u \text{ or } b \in \text{subtree}_u) 的形状。
实现上,将点按 ww 分组,从大到小扫过每个组,考虑当前点是否满足约束以及当前点对后续点带来的约束即可。

评论

0 条评论,欢迎与作者交流。

正在加载评论...