#P10848. [EGOI 2024] Circle Passing / 传球游戏

    ID: 12299 远端评测题 2000ms 1024MiB 尝试: 0 已通过: 0 显示难度普及 上传者: 标签>2024O2优化EGOI(欧洲/女生)

[EGOI 2024] Circle Passing / 传球游戏

背景

Day 2 Problem A.

题面译自 EGOI2024 circlepassing。翻译来自于 ChatGPT 并进行人工校对,若有误请联系 rui_er。

题目描述

这是 Anouk 高中的第一天;作为热身活动,她的体育老师让班级玩记忆名字的游戏。班上有 2N2N 名学生。他们中的大多数人彼此不认识,但有 MM 对最好的朋友,他们一起做任何事情。每个学生最多有一个最好的朋友。

老师把所有学生安排成一个圆圈,连续给每个学生分配一个从 00 到 2N−12N - 1 的编号。更具体地,对于每个 0≤i<2N−10 \le i < 2N - 1,学生 ii 和 i+1i + 1 站在一起。此外,学生 00 和 2N−12N - 1 也站在一起。

由于老师希望每个人都能结识新同学,所以最好的朋友必须尽可能远离彼此,即相对而站。也就是说,形成第 ii 对好朋友的学生分别站在位置 kik_i 和 ki+Nk_i + N,其中 0≤ki<N0 \le k_i < N。

老师选择了两个学生 xx 和 yy 并将一个球交给学生 xx。目标是将球传给学生 yy,但每个学生只能将球传给另一个他们已经知道名字的学生。当然,最好的朋友彼此知道对方的名字。在老师解释规则期间,每个学生都认识了直接站在他们旁边的两个学生的名字。除此之外,没有人知道其他人的名字。

游戏玩了 QQ 次;每次老师选择两个学生。由于学生们没有注意,他们在游戏过程中不会学到任何新名字。在每场游戏中,从学生 xx 到学生 yy 需要的最少传球次数是多少?

输入格式

输入的第一行包含三个整数,N,MN, M 和 QQ,其中 2N2N 是 Anouk 班上的学生数,MM 是最好朋友的对数,QQ 是进行的游戏次数。

第二行包含 MM 个整数 k0,⋯ ,kM−1k_0 ,\cdots, k_{M-1},其中 kik_i 描述了第 ii 对好朋友。对于每个 ii,最好朋友分别站在位置 kk 和 k+Nk + N。每个学生最多有一个最好的朋友。

接下来的 QQ 行每行包含两个整数,xix_i 和 yiy_i,即第 ii 场游戏中选择的两个学生。

输出格式

输出 QQ 行,第 ii 行包含一个整数,即第 ii 场游戏中所需的最少传球次数。

4 1 5
1
1 4
1 5
1 7
1 2
1 6

2
1
2
1
2
6 1 3
5
5 7
5 1
5 11
2
3
1
4 2 4
2 3
0 2
0 3
0 6
0 7
2
2
2
1
5 2 5
0 4
0 9
1 8
8 3
1 6
3 9
1
3
3
3
2
500000000 4 3
543234 1234566 2300001 249999999
2334445 123567
6578996 12455726
3 269979899
2210878
5876730
231106567

提示

样例解释

以下两图描述了第一个样例和第四个样例中的排列情况。如果两个学生彼此认识,他们之间就有一条边连接。

在第一个样例的第一个游戏中,球被传给学生 11。学生 11 将球传给他们的好朋友学生 55。球在学生 55 传给学生 44 后到达学生 44,总共需要两次传球。


数据范围

对于全部数据,2≤N≤5×1082\le N\le 5\times 10^8,1≤M≤5×1051\le M\le 5\times 10^5 且 M≤NM\le N,1≤Q≤2×1041\le Q\le 2\times 10^4,0≤k0<k1<⋯<kM−1<N0\le k_0<k_1<\cdots<k_{M-1}<N,0≤xi,yi<2N0\le x_i,y_i < 2N 且 xi≠yix_i\ne y_i。

  • 子任务一(1414 分):M=1M=1 且 xi=k0x_i=k_0。换句话说,仅有一对最好的朋友,且在每局游戏中,最开始有球的人有一个最好的朋友。
  • 子任务二(2020 分):N,M,Q≤1000N,M,Q\le 1000。
  • 子任务三(2222 分):N≤107N\le 10^7 且 M,Q≤1000M,Q\le 1000。
  • 子任务四(1717 分):xi=0x_i=0。
  • 子任务五(2727 分):无特殊限制。

注:部分测试点在 EGOI 中被放在多个子任务中。为节省评测资源及整理数据的工作量,这些测试点被放在包含它的所有子任务中编号最小的一个。这可能导致一份代码得到比预期更高的分数,但是无法过题。