社区讨论
全WA求调
P4588[TJOI2018] 数学计算参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mhjtd31p
- 此快照首次捕获于
- 2025/11/04 08:11 4 个月前
- 此快照最后确认于
- 2025/11/04 08:11 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=1e5+1;
const int maxm=1e9+1;
// queue<int> q;
long long T,Q,M;
struct SGT{
long long a[4*maxn];
long long mid(int l,int r){
return (l+r)/2;
}
long long ls(int p){
return (p*2);
}
long long rs(int p){
return (p*2+1);
}
void pushup(int p){
a[p]=(a[ls(p)]*a[rs(p)])%M;
}
void update(int pos,int x,int l,int r,int p){
if(l==r){
if(x==1) a[p]=1;
else{
int t=x%M;
a[p]*=t;
a[p]%=M;
}
return;
}
long long m=mid(l,r);
if(pos<=m) update(pos,x,l,m,ls(p));
if(pos>=m+1) update(pos,x,m+1,r,rs(p));
pushup(p);
}
long long query(){
return a[1];
}
}sgt;
void init(){
cin>>T>>Q>>M;
for(int i=1;i<=4*maxn;i++){
sgt.a[i]=1;
}
}
signed main(){
init();
long long op;
long long num;
long long cnt1=0;
long long cntotal=0;
long long hash[maxn];
for(int i=1;i<=Q;i++){
cin>>op;
cntotal++;
if(op==1){
cnt1++;
hash[cntotal]=cnt1;
cin>>num;
sgt.update(cnt1,num,1,Q,1);
cout<<sgt.query()<<endl;
}
else{
cin>>num;
sgt.update(hash[num],1,1,Q,1);
cout<<sgt.query()<<endl;
}
}
return 0;
}
开了longlong也wa
回复
共 3 条回复,欢迎继续交流。
正在加载回复...