还得加练。
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 \]做完了啊。
标签:AtCoder,gt,Beginner,Submission,378,sum,Contest,leq,bmod From: https://www.cnblogs.com/xsyc/p/18531079