超时了!!!!
查看原帖
超时了!!!!
482623
一洛本谷通楼主2022/3/26 17:31
#include<bits/stdc++.h>
using namespace std;
int n,p,x[1000000],a[1000000],m,y,z=0;
struct add{
	int num;
	int t,g,c;
}add[1000000];
int main(){
	cin>>n>>p;
	for(int i=1;i<=n;i++){
		cin>>x[i];
		x[i]%=p;
	}
	cin>>m;
	for(int i=1;i<=m;i++){
		cin>>add[i].num>>add[i].t>>add[i].g;
		if(add[i].num!=3) cin>>add[i].c;
	}
	for(int i=1;i<=n;i++){
		if(add[i].num==1){
			for(int j=add[i].t;j<=add[i].g;j++){
				x[j]=x[j]*add[i].c%p;
			}
		}
		else if(add[i].num==2){
			for(int j=add[i].t;j<=add[i].g;j++){
				x[j]=(x[j]+add[i].c)%p;
			}
		}
		else{
			for(int j=add[i].t;j<=add[i].g;j++){
				y+=x[j];
				y%=p;
				
			}
			z++; 
			a[z]=y;
			y=0;
		}
	}
	for(int i=1;i<=z;i++){
		if(a[i]) cout<<a[i]<<endl;
	}
	return 0;
}


2022/3/26 17:31
加载中...