数据结构 | 树状数组
树状数组 (Binary Index Tree, BIT / Fenwick Tree): 对于满足结合律且可差分的问题,可在 $O(\log n)$ 进行单点修改和区间查询的数据结构。
满足结合律且可差分的问题:对于运算 $\circ$,如果其存在逆运算 $\bullet$,即 $x\circ y\bullet y=x$,则该运算是可差分的。若该运算同时满足结合律,则是满足结合律且可差分的问题。符合这个性质的常见运算有 $+,\times,\oplus$.
树状数组 (Binary Index Tree, BIT / Fenwick Tree): 对于满足结合律且可差分的问题,可在 $O(\log n)$ 进行单点修改和区间查询的数据结构。
满足结合律且可差分的问题:对于运算 $\circ$,如果其存在逆运算 $\bullet$,即 $x\circ y\bullet y=x$,则该运算是可差分的。若该运算同时满足结合律,则是满足结合律且可差分的问题。符合这个性质的常见运算有 $+,\times,\oplus$.
NOMURA Programming Contest 2022(AtCoder Beginner Contest 253)
E - Distance Sequence
通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(分治)的方式去解决:动态规划 (Dynamic Programming, DP)
Monoxer Programming Contest 2022(AtCoder Beginner Contest 249)
F - Ignore Operations