#P51323. 「CCO 2020」旅行商问题

「CCO 2020」旅行商问题

题目描述

译自 CCO 2020 Day2 T1「Travelling Salesperson,翻译者:EntropyIncreaser


给一个 NN 个点的完全无向图,每条边是红色或者蓝色。请你对于每个顶点 uu,找出一条尽量短的路径,经过每个节点,并且按顺序经过的边之颜色交替最多一次。

输入格式

第一行输入一个正整数 NN,表示顶点数量。

接下来 N1N-1 行,第 ii 行是长为 i1i-1 的,只出现 RB 的字符串,依次表示 ii 节点与 1,2,,i11, 2, \dots, i-1 这些节点间边的颜色。

输出格式

输出 2N2N 行,第 2i12i-1 行输出一个整数 MiM_i,表示 ii 节点起始路径的经过节点数量。

2i2i 行输出 MiM_i 个整数,表示这条路径依次经过的节点,以 ii 起始。

样例

4
R
RR
BRB
5
1 4 2 1 3
6
2 3 1 2 3 4
5
3 1 2 3 4
4
4 3 1 2

根据评分方式(见下),该输出以 33 为起点的路径实际上存在一组长为 44 的解(3,2,1,43,2,1,4),故在该路径上的得分是 4×8+8×2×4541=644\times \lfloor 8 + 8\times \frac{2\times 4 - 5}{4-1} \rfloor = 64,故得分不会超过 6464

数据范围与提示

对于 100%100 \% 的数据,2N20002 \le N \le 2000

评分方式

KiK_i 是以 ii 为起点的最优解的长度。如果存在一组 Mi>2KiM_i > 2K_i,你的答案会得到 00 分并判为 Wrong Answer

如果你得到的均为最优解,你获得满分。

否则,你的得分将是 4×8+8×2KiMiKi14\times \lfloor 8 + 8\times \frac{2K_i - M_i}{K_i-1} \rfloor 的最小值。