线段树build_tree的时候就要取模。
90分代码:
void build_tree(ll id,ll l,ll r)
{
if(l == r)
{
tree[id].sum = arr[idx[l]];
}
else
{
ll mid = l + r >> 1;
build_tree(id << 1,l,mid);
build_tree(id << 1 | 1,mid + 1,r);
push_up(id);
}
return;
}
100分代码:
void build_tree(ll id,ll l,ll r)
{
if(l == r)
{
tree[id].sum = arr[idx[l]] % mod;
}
else
{
ll mid = l + r >> 1;
build_tree(id << 1,l,mid);
build_tree(id << 1 | 1,mid + 1,r);
push_up(id);
}
return;
}