大佬可以举个例子嘛,为啥删除干净
查看原帖
大佬可以举个例子嘛,为啥删除干净
794689
Bb1774212118楼主2023/7/19 11:54
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
struct node{
	int date;
	int next,prev;
}node[N];

int main(){
	int n;
	cin>>n;
	
	node[1].date=1;
	node[1].next=-1;
	node[1].prev=0;
	node[0].next=1;
	for(int i=2;i<=n;i++){
		int a,b;
		cin>>a>>b;
		if(b==0){
			node[i].date=i;
			node[i].next=a;
			node[i].prev=node[a].prev;
			node[node[a].prev].next=i;
			node[a].prev=i;
			
		}
		else {
			node[i].date=i;
			node[i].prev=a;
			node[i].next=node[a].next;
			node[node[a].next].prev=i;
			node[a].next=i;
		}
	}
	int q;
	cin>>q;
	while(q--){
		int x;
		cin>>x;
		node[node[x].next].prev=node[x].prev;
		node[node[x].prev].next=node[x].next;
		node[x].next=-1;
		node[x].prev=-1;
	}
	for(int i=0;node[i].next!=-1;i=node[i].next){
		cout<<node[i].next<<' ';
	}
	
	return 0;
}
2023/7/19 11:54
加载中...