在建线段树时注意取模。
void build(int u, int l, int r) { seg[u].l = l; seg[u].r = r; if (l == r) seg[u].w = tree[hld[l].rdfn] % p; // 取模 else { int m = (l + r) / 2; build(2 * u, l, m); build(2 * u + 1, m + 1, r); pushUp(u); } }