显示编译失败,但是没有报错信息
查看原帖
显示编译失败,但是没有报错信息
635570
baka24楼主2023/7/12 20:58

本地是好的,交上去或者用洛谷ide就显示编译失败,但也没有报错信息,求大佬帮忙看看


#include<bits/stdc++.h>
using namespace std;
const int MAXN=500010;
int n,m,a[MAXN];
struct Tree{
    int num=1;
}t[MAXN<<2];
void Pushup(int pos){
    t[pos].num=t[pos<<1].num*t[pos<<1|1].num%m;
    return;
}
void build(int pos,int l,int r){
    if(l==r){
        t[pos].num=1;
        return;
    }
    int mid=(l+r)>>1;
    build(pos<<1,l,mid);
    build(pos<<1|1,mid+1,r);
    Pushup(pos);
    return;
}
int query(int pos,int l,int r,int ql,int qr){
    if(ql<=l&&qr>=r){
        return t[pos].num;
    }
    int res=1,mid=(l+r)>>1;
    if(ql<=mid)res*=query(pos<<1,l,mid,ql,qr);
    if(qr>mid)res*=query(pos<<1|1,mid+1,r,ql,qr);
    return res;
}
void Update(int pos,int l,int r,int x,int k){
	//cout<<pos<<" "<<l<<" "<<r<<" "<<x<<" "<<k<<" "<<t[pos].num<<endl;
    if(l==r){
        t[pos].num=k;
        return;
    }
    int mid=(l+r)>>1;
    if(x<=mid)Update(pos<<1,l,mid,x,k);
    else Update(pos<<1|1,mid+1,r,x,k);
    Pushup(pos);
    return;
}
int t1,cnt;
signed main(){
    //build(1,1,n);
	scanf("%d",&t1);
	while(t1--){
    	scanf("%d%d",&n,&m);
    	for(int i=1;i<=n;i++){
        	int tmp;
        	cin>>tmp;
        	int x;
        	scanf("%d",&x);
        	if(tmp==1){
        	    a[++cnt]=x;
        	    Update(1,1,n,i,x);
        	    printf("%d\n",t[1].num%m);
        	}
        	else {
				for(int j=1;j<=cnt;j++){
					//cout<<j<<":"<<a[j]<<" ";
				}
				//cout<<endl;
        	    Update(1,1,n,x,1);
        	    printf("%d\n",t[1].num%m);
        	}
    	}
	}
    return 0;
}

~~~
2023/7/12 20:58
加载中...