解题报告:luogu P1160
Posted tlx-blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解题报告:luogu P1160相关的知识,希望对你有一定的参考价值。
题目链接:P1160 队列安排
链表板子题,但是过于垃圾的我不会指针,好在可以用数组去模拟链表,然后果然一发过了。
不要忘了更新有关元素就好。
(Code):
#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("
");
return 0;
}
以上是关于解题报告:luogu P1160的主要内容,如果未能解决你的问题,请参考以下文章