#L4110. 「BalkanOI 2023 Day2」Aliens
「BalkanOI 2023 Day2」Aliens
「BalkanOI 2023 Day2」Aliens
题目描述
译自 BalkanOI 2023 Day2 T3「Aliens」
马里博尔刚刚被外星人拜访了!他们与你分享了他们的技术和历史。
有 个行星,从 到 编号,地球的编号为 。每个行星都有一个唯一的人口数 ()。行星之间用 个双向传送门连接,你可以只用这些传送门在任意两个行星之间旅行。传送门 ()连接了行星 和 。两个行星之间的距离是旅行所需的最少传送门数。
你从地球出发,想要去游览 个其他行星 。这些被称为起源行星。每个起源行星和地球只有一个传送门连接。你的旅程为从地球出发,访问所有起源行星以及沿途所有行星的最短路线。令 为所有访问过的行星的集合。
现在,外星人决定通过向你提问 个以下两种类型的问题来测试地球是否有资格加入他们的超级文明:
- 类型 1:集合 的大小是多少?
- 类型 2:他们从 中选出一个行星 ,一个距离 ,和一个数字 。他们问你,在距离 为 的行星中,按人口数从小到大排列的第 个行星是哪个。(例如,如果 答案就是距离 为 的星球中人口数最少的行星。这个行星可以也可以不属于集合 。)
只有一个类型 1 的查询。
输入格式
第一行包含三个整数 。
第二行包含 个整数 。
第三行包含 个整数 。
接下来的 行中的第 ()行包含两个整数 和 。
接下来的 行满足以下格式之一:
1表示一个类型 1 的查询;2 x d r表示一个类型 2 的查询。
输出格式
对于每个查询,输出一行。对于类型 1 的查询,输出游览期间访问的行星数;对于类型 2 的查询,输出距离 为 的行星中按人口数排列的第 个行星。
样例 1
输入
5 1 5
8 7 9 4 16 12
1
0 4
3 1
2 4
5 4
4 3
1
2 4 2 1
2 3 2 1
2 4 1 3
2 5 2 3
输出
4
1
0
2
2
说明
只有一个起源行星,我们在游览中访问了行星 。类型 2 的查询有:
- :距离行星 4 为 2 的只有行星 1。
- :距离行星 3 为 2 的有行星 0,2,5。其中,行星 0 的人口数最少。
- :距离行星 4 为 1 的有行星 0,2,3,5,它们按人口数的顺序是 3,0,2,5。其中第三个是行星 2。
- :距离行星 5 为 2 的有行星 0,2,3,它们按人口数的顺序是 3,0,2。其中第三个是行星 2。
样例 2
输入
10 2 11
1 2 3 4 5 6 7 8 9 10 11
9 3
5 8
2 7
3 4
6 8
0 1
2 9
5 2
4 5
7 10
1 2
1
2 5 1 2
2 5 2 2
2 5 2 3
2 5 2 4
2 9 3 2
2 9 3 3
2 9 4 1
2 2 1 3
2 2 2 4
2 2 3 1
输出
7
4
3
6
7
4
8
3
7
10
3
数据范围与提示
对于所有输入数据,满足:
- ()
- 所有的 都是不同的
- ()
- ()
- 个起源行星和地球只有一个传送门连接
- 对于每个类型 2 的查询,满足 ,且
- 保证距离 为 的行星至少有 个
详细子任务附加限制及分值如下表所示。
| 子任务编号 | 附加限制 | 分值 |
|---|---|---|
| 1 | 3 | |
| 2 | 14 | |
| 3 | 21 | |
| 4 | 12 | |
| 5 | 13 | |
| 6 | 无附加限制 | 37 |