#P13856. [CERC 2023] Labelled Paths
[CERC 2023] Labelled Paths
Description
给定一个有向无环图,其中有 个顶点和 条边。每条边都有一个标记(由小写字母组成的字符串;可能为空字符串)。我们将“路径的标记”定义为这条路径上各边标记按路径顺序拼接而成的字符串。若从起点顶点 到目标顶点 存在多条路径,则其中最小的路径指的是其标记在所有路径的标记中按字典序最小的那条。请你编写一个程序,对于给定的起点 ,输出从 到每个顶点 的最小路径。
Input Format
第一行包含四个整数,分别是 (顶点数)、(边数)、(字符串 的长度,见下文)、(起点的编号)。顶点编号为 到 。
第二行给出一个字符串 ,长度正好为 ,所有字符均为小写英文字母。图中所有边的标记都是字符串 的子串。
接下来 行描述各条边。第 行描述第 条边,包含四个整数:(该边的起点)、(该边的终点)、 和 。其中最后两个数表示该边的标记是字符串 的一个子串:它从 的第 个字符开始,长度为 。这里我们认为 的字符编号从 到 。
Output Format
输出 行,第 行()描述从 到 的最小路径。
- 如果从 到 不存在路径,则这一行只输出整数 。
- 否则,先输出路径上的顶点数(包含 与 ),随后输出该路径上所有顶点的编号,按路径顺序排列,彼此间以空格分隔。
如果存在多条合法解,输出任意一条均可。
5 7 6 3
abcbca
3 2 1 1
2 1 5 1
2 5 4 2
3 1 1 2
3 4 3 2
1 4 6 1
5 4 5 2
2 3 1
2 3 2
1 3
3 3 1 4
3 3 2 5
Hint
注释
在这个样例中,边 的标记是 "ab";边 的标记是 "a";因此从 到 的最小路径是 ,其标记为 "aba"。
输入限制
- ,,且 (对所有 成立)
- ,,并且 (对所有 成立)
- 图是无环的,且不存在平行边(即若 ,则有 或 )。
翻译由 ChatGPT-5 完成
京公网安备 11011102002149号