So,这题也能蓝?
查看原帖
So,这题也能蓝?
658786
STUDENT00楼主2022/10/19 17:28

这顶多绿吧!

#include<bits/stdc++.h>
#define int long long
using namespace std;
int t,Q,M;
int tree[800010];
void update(int l,int r,int rt,int a,int b){
    if(l==r){
        tree[rt]=b;
        return;
    }
    int mid=(l+r)>>1;
    if(a<=mid) update(l,mid,rt<<1,a,b);
    else update(mid+1,r,rt<<1|1,a,b);
    tree[rt]=tree[rt<<1]*tree[rt<<1|1]%M;
    return;
}
signed main(){
    scanf("%lld",&t);
    while(t--){
        scanf("%lld%lld",&Q,&M);
        int N=4*Q;
        for(int i=1;i<=80000;i++) tree[i]=1;
        for(int k=1;k<=Q;k++){
            int op,m;
            scanf("%lld%lld",&op,&m);
            if(op==1) update(1,N,1,k,m);
            else update(1,N,1,m,1);
            printf("%lld\n",tree[1]);
        }
    }
    return 0;
}
2022/10/19 17:28
加载中...