原題連結
題解
直接插在它後面,這種資料結構是連結串列
賽時明明想到了連結串列,但是寫的一團糟。。
對於連結串列,最簡單的就是用map了
code
#include<bits/stdc++.h>
using namespace std;
int a[200005];
map<int,int> head,to;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
int start=a[1];
for(int i=2;i<=n;i++)
{
head[a[i]]=a[i-1];
to[a[i-1]]=a[i];
}
int q;
cin>>q;
while(q--)
{
int op;
cin>>op;
if(op==1)
{
int x,y;
cin>>x>>y;
to[y]=to[x];
head[y]=x;
head[to[x]]=y;
to[x]=y;
}
else
{
int x;
cin>>x;
head[to[x]]=head[x];
to[head[x]]=to[x];
if(start==x)start=to[x];
}
}
int it=start;
while(it)
{
cout<<it<<" ";
it=to[it];
}
return 0;
}