样例能过全WA求助
  • 板块P1160 队列安排
  • 楼主iamsbs
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/4/24 19:12
  • 上次更新2024/4/24 21:18:30
查看原帖
样例能过全WA求助
1155466
iamsbs楼主2024/4/24 19:12
#include<bits/stdc++.h>
using namespace std;
queue<int>q;
struct linked{
	int head;
	int pre[100010];
	int nxt[100010];
	linked(){
		head=0;
		memset(pre,-1,sizeof(pre));
		memset(nxt,-1,sizeof(nxt));
	}
	void push_head(int x){
		head=x;
	}void push_back(int k,int i){
		pre[i]=k;
		nxt[i]=nxt[k];
		pre[nxt[k]]=i;
		nxt[k]=i;
	}void push_front(int k,int i){
		if(k==head){
			head=i;
		}nxt[pre[k]]=i;
		pre[i]=pre[k];
		nxt[i]=k;
		pre[k]=i;
	}void pop(int x){
		if(x==head){
			head=nxt[x];
		}if(pre[x]==-1&&nxt[x]==-1){
			return;
		}
		pre[nxt[x]]=pre[x];
		nxt[pre[x]]=nxt[x];
		nxt[x]=-1;
		pre[x]=-1;
	}
	
};


int main(){
	linked l;
	int n,m,x;
	cin>>n;
	l.push_head(1);
	for(int i=2;i<=n;i++){
		int k,p;
		cin>>k>>p;
		if(p){
			l.push_back(k,i);
		}else{
			l.push_front(k,i);
		}
	}cin>>m;
	while(m--){
		cin>>x;
		l.pop(x);
	}int cnt=l.head;
	while(cnt!=-1){
		cout<<cnt<<' ';
		cnt=l.nxt[cnt];
	}
	return 0;
}
2024/4/24 19:12
加载中...