CF847A题解
gaoleng_luogu_name · · 题解
简要题意
话很多,其实只要看这一句就行了。
“你的任务是,给定若干个由如上方式表示的双向链表,链接这些双向链表使得其仅构成一个双向链表。注意:你只能通过链接两个双向链表的首尾单元来链接这两个双向链表。”
说白了,就是给你若干个双向链表,你只要将它们首尾相接后输出就行了。
思路
看懂题目后就简单了。让每一条链表的头连向上一个尾,再将尾更新。这里用数组模拟即可,不需要链表
代码
个人认为挺容易理解,不放注释了。码风丑陋,勿怪。
#include<bits/stdc++.h>
using namespace std;
int t[105],w[105],n,Next;
void print()
{
for(int i=1;i<=n;i++)
printf("%d %d\n",t[i],w[i]);
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d%d",&t[i],&w[i]);
for(int i=1;i<=n;i++)
{
if(!t[i])
{
w[Next]=i;
t[i]=Next;
Next=i;
while(w[Next])
{
Next=w[Next];
}
}
}
print();
return 0;
}
记录
洛谷
CF