红名大佬%%%%%
by JK_LOVER @ 2020-04-24 18:22:35
@[JK_LOVER](/user/227824) 大佬帮我看看吧QAQ
by Diamiko @ 2020-04-24 18:25:19
```cpp
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define int long long
inline int read()
{
char c;int res=0,flag=1;
for(;!isdigit(c);c=getchar())if(c=='-')flag=-1;
for(;isdigit(c);c=getchar())res=(res<<3)+(res<<1)+c-'0';
return flag*res;
}
const int N=1e5+10;
int n,m,t,x,y,p;
ll sum[N<<2],mul[N<<2],add[N<<2],a[N];
void build(int i,int l,int r)
{
mul[i]=1;
if(l==r)
{
sum[i]=a[l];
return;
}
int mid=l+r>>1;
build(i<<1,l,mid);
build(i<<1|1,mid+1,r);
sum[i]=(sum[i<<1]%p+sum[i<<1|1]%p)%p;
}
void Mul(int i,int k)
{
mul[i]=(mul[i]%p)*(k%p)%p;
add[i]=(add[i]%p)*(k%p)%p;
sum[i]=(sum[i]%p)*(k%p)%p;
}
void Add(int i,int l,int r,int k)
{
add[i]=(add[i]%p+k%p)%p;
sum[i]=(sum[i]%p+(k%p)*((r-l+1)%p)%p)%p;
}
void pushdown(int i,int l,int r,int mid)
{
if(mul[i]!=1)
{
Mul(i<<1,mul[i]);
Mul(i<<1|1,mul[i]);
mul[i]=1;
}
if(add[i])
{
Add(i<<1,l,mid,add[i]);
Add(i<<1|1,mid+1,r,add[i]);
add[i]=0;
}
}
void modify_mul(int i,int l,int r,int x,int y,int val)
{
if(x<=l&&r<=y)return Mul(i,val);
int mid=l+r>>1;
pushdown(i,l,r,mid);
if(x<=mid)modify_mul(i<<1,l,mid,x,y,val);
if(y>mid) modify_mul(i<<1|1,mid+1,r,x,y,val);
sum[i]=(sum[i<<1]%p+sum[i<<1|1]%p)%p;
}
void modify_add(int i,int l,int r,int x,int y,int val)
{
if(x<=l&&r<=y)return Add(i,l,r,val);
int mid=l+r>>1;
pushdown(i,l,r,mid);
if(x<=mid)modify_add(i<<1,l,mid,x,y,val);
if(y>mid) modify_add(i<<1|1,mid+1,r,x,y,val);
sum[i]=(sum[i<<1]%p+sum[i<<1|1]%p)%p;
}
ll query(int i,int l,int r,int x,int y)
{
if(x<=l&&r<=y)return sum[i];
int mid=l+r>>1;
pushdown(i,l,r,mid);
ll ans=0;
if(x<=mid)ans=(ans%p+query(i<<1,l,mid,x,y)%p)%p;
if(y>mid)ans=(ans%p+query(i<<1|1,mid+1,r,x,y)%p)%p;
return ans;
}
signed main()
{
n=read(),m=read(),p=read();
for(int i=1;i<=n;i++)
{
a[i]=read();
}
build(1,1,n);
for(int i=1;i<=m;i++)
{
t=read(),x=read(),y=read();
if(t==1)
{
modify_mul(1,1,n,x,y,read());
}
else if(t==2)
{
modify_add(1,1,n,x,y,read());
}
else
{
printf("%lld\n",query(1,1,n,x,y));
}
}
return 0;
}
```
by JK_LOVER @ 2020-04-24 18:25:20
没开long long
by JK_LOVER @ 2020-04-24 18:25:36
@[弑魂丶琉璃花P](/user/203102)
by JK_LOVER @ 2020-04-24 18:25:55
@[JK_LOVER](/user/227824) 啊?是这样吗?谢谢大佬,我去试试……
by Diamiko @ 2020-04-24 18:29:26
@[JK_LOVER](/user/227824) 真的对了……无语……谢谢大佬!不过不开longlongWa就算了,为啥还会TLE呢……
by Diamiko @ 2020-04-24 18:32:11