样例都过不了
by chen_z @ 2023-07-20 17:24:35
```cpp
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=100000;
int n,q,m;
int a[maxn],w[maxn*4],lzy_mul[maxn*4],lzy_add[maxn*4];
void pushup(int u){
w[u]=(w[u*2]+w[u*2+1])%m;//<--
}
void build(int u,int L,int R){
if(L==R){
w[u]=a[L];
return;
}
int M=(L+R)/2;
build(u*2,L,M);
build(u*2+1,M+1,R);
lzy_mul[u]=1;//<--
pushup(u);
}
void maketag(int u,int L,int R,int x,int type){//int x
if(type==1){
(lzy_add[u]*=x)%=m;
(lzy_mul[u]*=x)%=m;
(w[u]*=x)%=m;
}
else{
(lzy_add[u]+=x)%=m;//<--
(w[u]+=(R-L+1)*x)%=m;
}
}
void pushdown(int u,int L,int R){
int M=(L+R)/2;
maketag(u*2,L,M,lzy_mul[u],1);
maketag(u*2,L,M,lzy_add[u],2);
maketag(u*2+1,M+1,R,lzy_mul[u],1);
maketag(u*2+1,M+1,R,lzy_add[u],2);
lzy_mul[u]=1;
lzy_add[u]=0;
}
bool InRange(int L,int R,int l,int r){
return (l<=L)&&(R<=r);
}
bool OutofRange(int L,int R,int l,int r){
return (l>R)||(r<L);
}
int query(int u,int L,int R,int l,int r){
if(InRange(L,R,l,r)){
return w[u];
}
else if(!OutofRange(L,R,l,r)){
int M=(L+R)/2;
pushdown(u,L,R);
return (query(u*2,L,M,l,r)+query(u*2+1,M+1,R,l,r))%m;
}
else return 0;
}
void update(int u,int L,int R,int l,int r,int x,int type){
if(InRange(L,R,l,r)){
maketag(u,L,R,x,type);
}
else if(!OutofRange(L,R,l,r)){
int M=(L+R)/2;
pushdown(u,L,R);
update(u*2,L,M,l,r,x,type);
update(u*2+1,M+1,R,l,r,x,type);
pushup(u);
}
}
main(){
cin>>n>>q>>m;
for(int i=1;i<=n;i++)cin>>a[i];
build(1,1,n);
for(int i=1;i<=q;i++){
int type,x,y,k;
cin>>type;
if(type==1||type==2){
cin>>x>>y>>k;
update(1,1,n,x,y,k,type);//<--
}
else{
cin>>x>>y;
cout<<query(1,1,n,x,y)<<'\n';//<--
}
}
return 0;
}
```
70pts代码,错的地方都标出来了。剩下30pts应该是取模的问题,找了半天没找出来。
by tangyigeng @ 2023-07-20 19:06:09
@[tangyigeng](/user/654992) 哇,太感谢了,一直没看到
by chen_z @ 2023-07-21 19:11:56
@[tangyigeng](/user/654992) 两关了,是@CSQLYB和另外一个@TBClikeZT
by TBClikeZT @ 2023-07-21 19:14:19
@[tangyigeng](/user/654992) 谢谢谢谢%%%orzorz
by TBClikeZT @ 2023-07-21 19:15:36
@[tangyigeng](/user/654992) dalao我还是改不过,可能不是%的问题,能%的都%了,还是70
by chen_z @ 2023-07-21 20:00:00
@[tangyigeng](/user/654992) 凸(艹皿艹 )终于找到了,是
```cpp
main(){
```
的问题!!!!啊啊啊啊啊啊!!!
by chen_z @ 2023-07-21 21:39:05