[洛谷P3373] 线段树板子题
线段树区间修改,区间查询模板题 改了n次才过啊!!! 传送门 #include<bits/stdc++.h> using namespace std; #define MAX 100005 struct Node { int l,r; long long lazyadd,lazymul,val; }node[MAX<<2]; long long d[MAX],p; inline void pushup(int rt) { node[rt].val=(node[rt<<1].val+node[rt<<1|1].val)%p; } inline void construct(int rt,int l,int r) { node[rt].l=l; node[rt].r=r; node[rt].lazyadd=node[rt].val=0; node[rt].lazymul=1; if(l==r) { node[rt].val=d[l]; return; } int mid=(l+r)>>1; construct(rt<<1,l,mid); construct(rt<<1|1,mid+1,r); pushup(rt); } inline void pushdown(int rt) { if(node[rt].lazymul!=1) { node[rt<<1].val=(node[rt<<1