社区讨论

wa三个,求助

题目总版参与者 2已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lo1gf5t1
此快照首次捕获于
2023/10/22 20:37
2 年前
此快照最后确认于
2023/11/02 21:02
2 年前
查看原帖
using namespace std;
const int N=1e5+10;
int to[N],last[N];
void addl(int x,int y){
	to[last[y]]=x;
	last[x]=last[y];
	to[x]=y;
	last[y]=x;
}
void addr(int x,int y){
	last[to[y]]=x;
	to[x]=to[y];
	to[y]=x;
	last[x]=y;
}
void del(int x){
	to[last[x]]=to[x];
	last[to[x]]=last[x];
	to[x]=0;
	last[x]=0x3f3f3f3f;
}

int main(){
    int n;
    cin>>n;
    for(int i=2;i<=n;i++){
    	int x,y;
    	scanf("%d%d",&x,&y);
    	if(y==0) addl(i,x);
    	else{
    		addr(i,x);
		}
	}
	int m;
	cin>>m;
	for(int i=1;i<=m;i++){
		int x;
		cin>>x;
		if(last[x]!=0x3f3f3f3f) del(x);
	}
	int headtail;
	for(int i=1;i<=m;i++){
		if(last[i]==0){
			headtail=i;
			break;
		}
	}
	while(headtail!=0){
		cout<<headtail<<" ";
		headtail=to[headtail];
	}
    return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...