#P11498. [EGOI2024]活动面基

[EGOI2024]活动面基

题目描述

米拉和劳拉是多年的网友,从未在现实中见过面。现在,她们同时参加一个线下活动,注定会相遇。然而,她们下榻的酒店非常大且复杂,几天过去了,你发现她们仍然没有偶遇。

酒店有 NN 个房间,编号从 00N1N-1,每个房间有一盏可以变换颜色的灯。你找到了酒店的电气服务室,可以改变灯的颜色。你的目标是通过调整灯的颜色引导米拉和劳拉,让她们最终相遇。

酒店可以看作一个图,包含 NN 个顶点(房间)和 MM 条边(连接房间的走廊)。米拉和劳拉初始在两个不同的房间,但你不知道她们的具体位置。你可以进行若干次操作,每次操作输出 NN 个整数 c0,c1,,cN1c_0, c_1, \ldots, c_{N-1},表示将房间 ii 的灯颜色设为 cic_ii=0,1,,N1i = 0, 1, \ldots, N-1)。米拉和劳拉会查看当前房间灯的颜色,并走向一个灯颜色相同的相邻房间。如果没有这样的相邻房间,她们会留在原地。如果有多个符合条件的相邻房间,她们会随机选择一个。

如果米拉和劳拉在你的操作过程中某时刻处于同一房间或同时经过同一条走廊,你就成功让她们相遇。你最多可以进行 2000020000 次操作,但操作次数越少,分数越高。

注意,你不知道米拉和劳拉的起始房间,也不知道她们在多个同色房间可选时会如何选择。你的方案必须在任何起始房间和任何行走选择下都正确

输入格式

第一行包含两个整数 N,MN, M,分别表示酒店的房间数和走廊数。

接下来的 MM 行每行包含两个整数 ui,viu_i, v_i,表示房间 uiu_iviv_i 之间有一条走廊。

输出格式

输出一行,包含一个整数 KK,表示操作次数。

接下来的 KK 行,每行输出 NN 个整数 c0,c1,,cN1c_0, c_1, \ldots, c_{N-1},满足 0ciN0 \leq c_i \leq N,按时间顺序表示你的操作。

3 2
0 1
1 2

5
2 2 2
2 2 3
2 2 3
1 2 2
1 2 2

数据范围与提示

对于所有输入数据,满足:

  • 2N1002 \leq N \leq 100
  • N1MN(N1)2N-1 \leq M \leq \frac{N(N-1)}{2}
  • 0ui,viN10 \leq u_i, v_i \leq N-1,且 uiviu_i \neq v_i
  • 从任意房间可以到达其他任意房间。此外,没有从房间到自身的走廊,也没有任意两个房间之间的多条走廊。
  • 你最多可进行 2000020000 次操作(即 K20000K \leq 20000)。

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
11 1010 M=N1M = N-1,且走廊为 (0,1),(0,2),(0,3),,(0,N1)(0,1), (0,2), (0,3), \ldots, (0, N-1),即图为星形图
22 1313 M=N(N1)2M = \frac{N(N-1)}{2},即任意两个房间之间有走廊,图为完全图
33 1111 M=N1M = N-1,且走廊为 (0,1),(1,2),(2,3),,(N2,N1)(0,1), (1,2), (2,3), \ldots, (N-2, N-1),即图为路径图
44 3636 M=N1M = N-1,即图为树
55 3030 无附加限制

对于每个正确解决的子任务,你将根据以下公式获得分数:

$$\text{score} = \left\lfloor S_g \cdot \min\left(1, \frac{2000}{K_g + 1900} + \frac{1}{5}\right)\right\rfloor $$

其中 SgS_g 是子任务的最大分值,KgK_g 是该子任务中任意测试点使用的最大操作次数。这意味着要获得满分,你在所有测试点中最多使用 600600 次操作。下图展示了分数与 KgK_g 的关系。

makethemmeetplot.png