#P17130. [ICPC 2025 Shanghai R] Yet another mailbox problem
[ICPC 2025 Shanghai R] Yet another mailbox problem
背景
试题来自 清华大学学生算法协会。
题目描述
Yana、Mino、White 和 Huzz 是最好的朋友。
一天,教练让 White、Mino 和 Huzz 准备一场模拟赛。Huzz 设计了一道漂亮的搜索题,其复杂度关于 是指数级的。他仔细检查了整道题目的描述,唯独漏掉了一个细节:他误将 写成了 。后来,这道题出现在了一场模拟赛中。愤怒的参赛者 Yana 找到 Huzz,质问这道题到底该怎么解。然而 Huzz 似乎忘记了什么,他给出的题目描述看起来略有不同——
给定一张有 个顶点和 条边的有向图,每条边 带有一个介于 到 之间的整数权重 。
一条路径是一个边的序列 ,使得对于所有 , 的终点是 的起点。路径的长度为 ,即包含的边数。注意,一条路径可以多次包含同一条边。
路径的权重序列为边的权重构成的序列 。路径之间按权重序列的字典序进行比较。
只要两条路径使用了不同的边,即使它们经过的顶点序列和权重序列完全相同,它们也被视为不同的路径。例如,如果路径 和 的权重序列都是 ,且都沿着顶点 走,只要 或 ,它们就是不同的。
White 希望找到字典序最小的 条路径。由于输出总量可能过大,你只需要输出每条路径的长度。
输入格式
第一行包含 个整数 (, , ),分别表示顶点数、边数以及需要求出的路径数。
接下来的 行,每行包含 个整数 (, , ),表示一条有向边 ,其权重为 。给定的边集中可能包含重边。
输出格式
输出 行。第 行应包含一个整数,表示权重序列字典序第 小的路径的长度。如果这样的路径不足 条,则输出 。
5 5 8
2 1 1
3 1 2
4 1 1
1 5 2
5 2 1
1
1
1
2
3
4
5
6
3 4 10
1 2 1
1 2 1
2 3 2
2 3 3
1
1
2
2
2
2
1
1
-1
-1
6 5 15
1 2 3
2 3 5
3 4 2
3 5 1
5 6 4
1
2
1
1
2
3
4
3
1
1
2
3
2
-1
-1
提示
为简便起见,用 表示输入中的第 条边。
对于第一组测试用例,字典序最小的 条路径为:
- 路径 ,权重序列 。
- 路径 ,权重序列 。
- 路径 ,权重序列 。
- 路径 ,权重序列 。
- 路径 ,权重序列 。
- 路径 ,权重序列 。
- 路径 ,权重序列 。
- 路径 ,权重序列 。
翻译由 DeepSeek V4 Pro 完成