A:直接输出。
B:把 \(M\) 三进制拆分,最多 10 位,每位最多为 2,\(N \le 20\) 足够了。
C:暴力修改,每次只产生 \(O(1)\) 影响。
D:预处理 st 表,二分每个 \(j\) 会断哪些 \(i\) 产生贡献,差分一下。
E:启发式合并平衡树,\(k\) 更大也能做。
F:只保留有特殊边经过的点,把 \(i, j\) 之间的 \(j - i\) 条边替换成权值为 \(j - i\) 的一条边。
\(f(i, j)\) 表示走了 \(j\) 步,以特殊点 \(i\) 结尾的路径个数。两个相邻特殊点间的平凡点 \(l\) 对答案的贡献为 \(f(i, k - (l - i))\)。
标签:AtCoder,特殊,Beginner,Contest,替换成,372 From: https://www.cnblogs.com/Luxinze/p/18425073