第十一次

A

限制即 $\operatorname{lcm}|$ 原数,考虑把 $\operatorname{lcm}$ 和原数压进状态。

$\mathop{\operatorname{lcm}}\limits_{i=1}^9 i=2520$,所以 $\operatorname{lcm}|2520$,而 $2520$ 的约数只有 $48$ 个,直接离散化存进状态,

而 $\operatorname{lcm}|$ 原数等价于 $\operatorname{lcm}|$ 原数 $\bmod\ 2520$,所以只需要存原数 $\bmod\ 2520$,

总状态数 $20\times 48\times 2520\approx 2.5\times 10^6$,可以通过。

B

不会 AC 自动机。

设 $f_{i,j}$ 表示 $T$ 中长度为 $x$,哈希值为 $y$ 的字符串数,然后发现 $x$ 只有 $\sqrt{\sum|s_i|}$ 种,

修改操作直接在 $f$ 上改,查询时考虑枚举文本串 $t$ 长度为 $k$ 的子串,其中 $\exists s_i,k=|s_i|$,

则 $k$ 也只有 $\sqrt{\sum|s_i|}$ 种,在 $f$ 中累计这些子串的出现次数即可。

C

选 $(a_i,b_i)$ 的贡献是自己 $+a_i$,对方 $-b_i$,对差的贡献是 $a_i+b_i$,

所以直接按 $a_i+b_i$ 排序,两人依次选即可。

D

设 $f_i$ 为从 $i$ 逃脱花费的最小体力,则有 $f_i=\min\limits_{j\in\text{subtree}(i)}b_ja_i+f_j$,

即现有一堆一次函数 $F_j(x)=b_jx+f_j|j\in\text{subtree}(i)$,求 $F_j(a_i)$ 的最小值,李超线段树合并维护之。

posted @ 2023-08-01 15:52  5k_sync_closer  阅读(5)  评论(0编辑  收藏  举报  来源