レポートの問題解決:luogu P1160

トピックリンク:p1160の配置はキュー
リストボードの質問に、しかし、以前のように、実際に、その後の状況を私は、あまりにもポインタを無駄にしません幸い配列はリストをシミュレートするために使用することができ、そして。
うまく関連する要素を更新することを忘れないでください。

\(コード\)

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
//模板题就先不尛了 
#define MAXN 1000005
struct node
{
	int l,r;	
}a[MAXN];
#define read(x) scanf("%d",&x) 
int n,m,k,p;
int vis[MAXN];
int f;
int main()
{
	a[1].l=a[1].r=0;
	read(n);
	for(int i=2;i<=n;i++)
	{
		read(k),read(p);
		if(p==0) a[i].l=a[k].l,a[i].r=k,a[a[k].l].r=i,a[k].l=i;
		else a[i].r=a[k].r,a[i].l=k,a[a[k].r].l=i,a[k].r=i;
	}
	read(m);
	for(int i=1;i<=m;i++)
	{
		read(k);
		if(vis[k]) continue;
		vis[k]=1;
		int h=a[k].l,t=a[k].r;
		a[h].r=t,a[t].l=h;
	}
	for(int i=1;i<=n;i++) if(!vis[i]&&a[i].l==0) f=i;
	while(f)
	{
		printf("%d ",f);
		f=a[f].r;
	}
	printf("\n");
	return 0;
} 

おすすめ

転載: www.cnblogs.com/tlx-blog/p/12631465.html