#B3631. 单向链表(Singly Linked List)

0

单向链表(Singly Linked List)

单向链表(Singly Linked List)

题目描述

实现一个数据结构,维护一张表(最初只有一个元素 11)。需要支持下面的操作,其中 xx 和 yy 都是 11 到 10610^6 范围内的正整数,且保证任何时间表中所有数字均不相同,操作数量不多于 10510^5:

  • 1 x y :将元素 yy 插入到 xx 后面;
  • 2 x :询问 xx 后面的元素是什么。如果 xx 是最后一个元素,则输出 00;
  • 3 x:从表中删除元素 xx 后面的那个元素,不改变其他元素的先后顺序。

输入格式

第一行一个整数 qq 表示操作次数。

接下来 qq 行,每行表示一次操作,操作具体见题目描述。

输出格式

对于每个操作 2,输出一个数字,用换行隔开。

样例输入 #1

6
1 1 99
1 99 50
1 99 75
2 99
3 75
2 1

样例输出 #1

75
99

数据范围

对于 100%100\% 的数据,1≤q≤1051 \le q \le 10^5,1≤x,y≤1061 \le x, y \le 10^6,保证任意时刻表中元素互不相同且操作合法。

知识点与难度

本题涉及的知识点从属于 GESP 5级,难度(CF Rating):950。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例及最小边界测试
1 20 3~8 1≤q≤10001 \le q \le 1000,1≤x,y≤10001 \le x, y \le 1000
2 15 9~11 Hack 数据:长链尾部查询(返回 00)、连续在表头 11 后插入与删除
3 30 12~20 1≤q≤1051 \le q \le 10^5,1≤x,y≤1061 \le x, y \le 10^6
4 25 21~25 1≤q≤1051 \le q \le 10^5 随机混合操作测试

出处:原题链接