江湖急救

P3373 【模板】线段树 2

```c #include<bits/stdc++.h> using namespace std; long long a[5005],n,q,opt,x,y,k,m; long long sum; int main(){ cin>>n>>q>>m; for(int i=1;i<=n;i++)cin>>a[i]; while(q--){ cin>>opt; if(opt==1){ cin>>x>>y>>k; for(int i=x;i<=y;i++){ a[i]=(a[i]*k)%m; } }else if(opt==2){ cin>>x>>y>>k; for(int i=x;i<=y;i++){ a[i]=(a[i]+k)%m; } }else{ sum=0; cin>>x>>y>>k; for(int i=x;i<=y;i++){ sum+=a[i]; } cout<<sum%m<<endl; } } return 0; } ```
by simple_ @ 2024-03-12 11:43:00


这道题要用线段树的,你这样暴力做肯定过不去啊
by HMSVanguard @ 2024-03-12 11:49:10


|