Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
34702 李羽乔 【S】T3 C++ 运行超时 9 1000 MS 13308 KB 2754 2024-11-12 18:52:06

Tests(2/22):


#include<bits/stdc++.h> using namespace std; const int N = 1e5+10,md = 1e9+7; #define int long long int n,m,a[N]; struct T{ int l; int r; int sum; int sum2; int maxn; int minn; }t[N*4]; inline void pushup(int i){ t[i].sum=(t[i*2].sum%md+t[i*2+1].sum%md+md)%md; t[i].sum2=(t[i*2].sum2%md+t[i*2+1].sum2%md+md)%md; t[i].minn=min(t[i*2].minn,t[i*2+1].minn); t[i].maxn=max(t[i*2].maxn,t[i*2+1].maxn); } inline void build(int i,int l,int r){ t[i].l=l; t[i].r=r; t[i].maxn=-1e9; t[i].minn=1e9; if(l==r){ t[i].sum=a[l]; t[i].sum2=a[l]%md*a[l]%md; t[i].minn=a[l]; t[i].maxn=a[l]; return; } int mid=(l+r)/2; build(i*2,l,mid); build(i*2+1,mid+1,r); pushup(i); } inline void update(int i,int x,int y){ if(t[i].l==x&&t[i].r==x){ t[i].sum=y; t[i].sum2=y%md*y%md; t[i].maxn=y; t[i].minn=y; return; } if(t[i*2].r>=x){ update(i*2,x,y); } if(t[i*2+1].l<=x){ update(i*2+1,x,y); } pushup(i); } inline int query(int i,int l,int r,int op){ if(t[i].l>=l&&t[i].r<=r){ if(op==1) return t[i].sum; if(op==2) return t[i].sum2; //if(op==3) return t[i].maxn; //if(op==4) return t[i].minn; } int ans=0; //if(op==4) ans=1e9; //else if(op==3) ans=-1e9; if(t[i*2].r>=l){ if(op==1||op==2){ ans=(ans%md+query(i*2,l,r,op)%md+md)%md; } /* else if(op==3){ ans=max(ans,query(i*2,l,r,op)); } else{ ans=min(ans,query(i*2,l,r,op)); } */ } if(t[i*2+1].l<=r){ if(op==1||op==2){ ans=(ans%md+query(i*2+1,l,r,op)%md+md)%md; } /* else if(op==3){ ans=max(ans,query(i*2+1,l,r,op)); } else{ ans=min(ans,query(i*2+1,l,r,op)); } */ } return ans%md; } signed main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]; } build(1,1,n); for(int i=1;i<=m;i++){ int op,x,y,z; cin>>op; if(op==1){ cin>>x>>y; cout<<(query(1,x,y,op)%md+md)%md<<endl; } if(op==2){ cin>>x>>y; cout<<(query(1,x,y,op)%md+md)%md<<endl; } if(op==3){ cin>>x>>y>>z; if(z==1) continue; //update3(1,x,y,z); } if(op==4){ cin>>x>>y; update(1,x,y); } } return 0; }


测评信息: