AtCoder Beginner Contest 378
还得加练。
A & B & C & D
不具备任何思维含量。
E
注意到它计算答案的式子,每个子区间和都需要取模,否则就是沙币题了,可以对于每个位置 \(O(1)\) 地统计答案扫过去然后 \(\bmod M\)。
常规地,记 \(S_i = \sum_{j \leq i} a_j\),改写式子为:
\[\sum_{1 \leq l \leq r \leq N} (S_r - S_{l - 1}) \bmod M
\]
注意到取模比较烦人,化简为:
\[S_{r} - S_{l - 1} + \begin{cases} 0 &(S_{l - 1} \leq S_{r}) \\ M &(S_{l - 1} \gt S_{r}) \end{cases}
\]
注意到 \(a_i \leq 10^5\),用树状数组维护一个数值桶 \(bit_i\),记 \(k = \sum_{i \gt s_r} bit_i\),得到:
\[\sum_{l \leq r} (S_r - S_{l - 1}) + kM = r \times S_{r} - \sum_{l \leq r} S_{l - 1} + kM
\]
做完了啊。
就是这个从 0 开始的 Fenwick 比较蛋疼。
F
统计:
- \(deg_u, deg_v\) 的度数都是 \(2\)
- 连接 \(u, v\) 的简单路径上所有点的度数都是 \(3\)
枚举度数为 \(3\) 的子图构成的连通分量,设 \(c\) 为与该分量相邻的度数为 \(2\) 的顶点数量,然后对答案的贡献为 \(\frac{c(c - 1)}{2}\)。
学了一下 lambda,感觉挺好用的,但是难背,多用吧。
G
杨表,周末补。