树状数组区间修改的方式是:
void upd(int l, int r, int v) { upd(l, v); upd(r + 1, -v); }
这里 −v-v−v 会是个负数,从而导致修改函数会用负数进行修改,取模的时候要 (x % p - y % p + p) % p 这样修改。
(x % p - y % p + p) % p