求助!
查看原帖
求助!
1327857
Endless_summer楼主2024/7/15 10:28

测试点都是对的但是0tps

代码如下

#include<bits/stdc++.h>
const int N=10000+2;
int L[N],R[N];

void insert_left(int x,int p){//x=L[p]
	int q=L[p];
	R[q]=x;L[p]=x;
	R[x]=p;L[x]=q;
}

void insert_right(int x,int p){//x=R[p]
	int q=R[p];
	L[q]=x;R[p]=x;
	L[x]=p;R[x]=q;
}

void remove(int x){
	L[R[x]]=L[x];R[L[x]]=R[x];
	L[x]=R[x]=x;
}

int main(){
	L[1]=0;R[1]=0;R[0]=1;L[0]=1;
	int n,k,m,x;
	bool p;
	scanf("%d",&n);
	for(int i=2; i<=n; i++){
		scanf("%d%d",&k,&p);
		if(p) insert_right(i,k);
		else  insert_left(i,k);
	}
	scanf("%d",&m);
	for(int i=1; i<=m; i++){
		scanf("%d",&x);
		remove(x);
	}
	int q=R[0];
	for(int i=1; i<=n; i++){
		printf("%d",q);
		q=R[q];
		if(q) printf(" ");
		else break;
	}
	return 0;
}

谢谢大佬 求调

2024/7/15 10:28
加载中...