做题记录 26.3.25
\(\textcolor{purple}\odot\) AT_agc039_d [AGC039D] Incenters
对于单位圆上三点 \(A,B,C\),令 \(D,E,F\) 分别为 \(\overset{\frown}{BC},\overset{\frown}{AC},\overset{\frown}{AB}\) 的中点,可证 \(\triangle ABC\) 的内心等于 \(\triangle DEF\) 的垂心
根据欧拉线,垂心为外心到重心的连边的两倍延长处,此题中重心为 \(O\),因此垂心的期望为重心期望的三倍
而重心坐标为三个顶点坐标的平均
令 \(p_i\) 表示第 \(i\) 个点,\(M(a,b)\) 表示弧的中点,则答案为
容易做到 \(O(n^2)\)
\(\textcolor{purple}\odot\) AT_agc044_c [AGC044C] Strange Dance
将加一、异或的 \(\text{Trie}\) 扩展到三进制即可
时间复杂度 \(O(n3^n)\)
\(\textcolor{black}\odot\) CF1801G A task for substrings
预处理 \(f_i\) 表示 \(t[1:i]\) 中 \(s\) 的数量,令 \(g_i\) 表示为 \(t[1:i]\) 的后缀的 \(s\) 中最长的一个的 \(id\),两者容易通过 \(\text{ACAM}\) 求出
对于一组询问 \([l,r]\),令 \(q\) 为满足 \(q\le r,q-|s_{g_q}|<l\) 的最大值,容易线段树上二分求出
若 \(q<l\) 则表示不存在匹配 \(t[[1\sim l-1]:[l\sim r]]\) 的 \(s\),从而此时的答案为 \(f_r-f_{l-1}\)
否则 \(t[l:r]\) 所包含的 \(s\) 可以分为两类,一类为右端点在 \((q,r]\) 中的,显然数量为 \(f_r-f_q\),一类为右端点在 \([l,q]\) 中的,显然等价于查询 \(s_{g_q}\) 的一个后缀中 \(s\) 的数量
对于每个 \(s\) 的每个后缀预处理其包含的 \(s\) 的数量,容易通过对所有 \(s\) 的逆序串建 \(\text{ACAM}\) 求出
时间复杂度 \(O(\sum |s||\sum|+|t|+m\log|t|)\)
\(\textcolor{purple}\odot\) CF1313E Concatenation with intersection
显然一组 \([l_1,r_1]\) 和 \([l_2,r_2]\) 有交且长度之和为 \(m\) 时需要满足 \(l_1\le r_2\le l_1+m-2\)
令 \(za_i\) 表示 \(a[i:]\) 和 \(s[1:n-1]\) 的 \(\text{lcp}\),\(zb_i\) 表示 \(b[:i]\) 和 \(s[2:n]\) 的 \(\text{lcs}\),两者容易用 \(\text{exkmp}\) 求出
则答案为
容易优化到 \(O(n\log n)\)
\(\textcolor{purple}\odot\) CF914F Substrings in a String
使用 bitset
对于每种字符保存一个 bitset 表示其位置的掩码,每次询问 \([l,r,y]\),枚举 \(i=1\sim |y|\),按位与上字符 \(y_i\) 的 bitset 右移 \(i\),最终得到的 bitset 取一个范围内的 count 即为答案
时间复杂度 \(O(\frac{|\sum|n}{\omega}+q|\sum|+\frac n{\omega} \sum|y_i|)\)
\(\textcolor{black}\odot\) CF906E Reverses
将两个串交错排列得到一个长度为 \(2n\) 的串,转化为将这个串划分为若干偶回文子串,最小化长度 \(>2\) 的回文子串数量
直接 \(dp\) 容易做到 \(O(n^2)\),考虑优化
若一个字符串 \(\text{A}\) 为回文串,
建立 \(\text{PAM}\),每个结点记录 \(df\) 表示当前结点和其 \(\text{fail}\) 结点代表字符串长度的差值,\(sl\) 表示 \(\text{fail}\) 树祖先中第一个和当前点的 \(df\) 不同的点
显然每次跳 \(sl\),任意一个点只会跳至多 \(O(\log n)\) 次
每次跳过一段 \(df\) 相同的祖先,若数量为 \(1\) 则考虑之,可证若数量 \(>1\) 则只需要考虑一段中第一个和最后一个
时间复杂度 \(O(n\log n+n|\sum|)\)

浙公网安备 33010602011771号