求助:为什么会TLE
查看原帖
求助:为什么会TLE
352963
sehunnnn1楼主2020/9/20 19:38
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;

struct node
{
	int l,r,d;
}q[100005];
void add(int i,int k,int p)
{

	if(p==0)
	{
		q[i].l =q[k].l;
		q[q[k].l].r=i;
		q[k].l=i;
		q[i].r=k;
	}
	if(p==1)
	{	
		q[i].r=q[q[k].r].l;
		q[q[k].r].l=i;
		q[k].r=i;
		q[i].l=k;
	}

}
int main()
{
	scanf("%d",&n);
	int k,p,n,m,x;
	q[0].r=q[0].l=0;
	add(0,1,0);
	for(int i=2;i<=n;i++) 
	{
		scanf("%d%d",&k,&p);
		add(i,k,p);
	}
	scanf("%d",&m);
	
	for(int i=1;i<=m;i++)
	{
		scanf("%d",&x);
		q[x].d=1;
	}
	for(int i=q[0].r;i;i=q[i].r)
	{
		if(q[i].d==0)  cout<<i<<" ";
	}
	return 0;
}
2020/9/20 19:38
加载中...