#lg3597. [POI 2015 R3] 旅行 Trips

[POI 2015 R3] 旅行 Trips

AdditionalFile4976.zip

P3597 [POI 2015 R3] 旅行 Trips

题目描述

给定一张 nn 个点 mm 条边的带权有向图,每条边的边权只可能是 11,22,33 中的一种。

将所有可能的路径按路径长度排序,请输出第 kk 小的路径的长度,注意路径不一定是简单路径,即可以重复走同一个点。

输入格式

第一行包含三个整数 n,m,kn,m,k(1≤n≤401\le n\le 40,1≤m≤10001\le m\le 1000,1≤k≤10181\le k\le 10^{18})。

接下来 mm 行,每行三个整数 u,v,cu,v,c(1≤u,v≤n1\leq u,v\leq n,u≠vu\neq v,1≤c≤31\le c\le 3),表示从 uu 出发有一条到 vv 的单向边,边长为 cc。

可能有重边。

输出格式

包含一行一个正整数,即第 kk 短的路径的长度,如果不存在,输出 −1-1。

输入输出样例 #1

输入 #1

6 6 11
1 2 1
2 3 2
3 4 2
4 5 1
5 3 1
4 6 3

输出 #1

4

说明/提示

【样例解释】

长度为 11 的路径有 1→21\to 2,5→35\to 3,4→54\to 5。长度为 22 的路径有 2→32\to3,3→43\to4,4→5→34\to5\to3。长度为 33 的路径有 4→64\to6,1→2→31\to2\to3,3→4→53\to4\to5,5→3→45\to3\to4。长度为 44 的路径有 5→3→4→55\to3\to4\to5。


原题名称:Wycieczki。

#4976. 「POI2015 R3」旅行 Trips

标签: 传统 | 时间限制: 19500 ms | 内存限制: 128 MiB |

题目描述

题目译自 XXII Olimpiada Informatyczna — III etap Wycieczki

Bajtazar 迷上了自行车旅行的魅力,计划在字节城的 kk 天假期中,每天骑行一条不同的路线,挑战自我。他希望逐渐增加难度,每天的路线不短于前一天。具体来说,第 ii 天他想选择字节城中第 ii 短的可能路线。请你帮助 Bajtazar 计算第 kk 天旅行的路线长度。

字节城有 nn 座城市,编号 11 到 nn,通过单向道路连接,道路长度为 11、22 或 33 公里,可能经过隧道或高架桥。旅行路线可在任意城市起止,可多次经过同一城市或道路。

输入格式

第一行包含三个整数 n,m,kn, m, k $(1 \leq n \leq 40, 1 \leq m \leq 1000, 1 \leq k \leq 10^{18})$,分别表示城市数、道路数和假期天数。

接下来的 mm 行描述道路,每行包含三个整数 u,v,cu, v, c (1≤u,v≤n,u≠v,1≤c≤3)(1 \leq u, v \leq n, u \neq v, 1 \leq c \leq 3),表示从 uu 号城市到 vv 号城市的单向道路,长度 cc 公里。两城市间可能有多条道路。

输出格式

输出一行,一个整数,表示第 kk 短旅行的长度。若可行旅行少于 kk 条(Bajtazar 需提前结束假期),输出 −1-1。

样例

输入

6 6 11
1 2 1
2 3 2
3 4 2
4 5 1
5 3 1
4 6 3

输出

4

  • 长度 11 的旅行:1→21 \rightarrow 2,5→35 \rightarrow 3,4→54 \rightarrow 5。
  • 长度 22 的旅行:2→32 \rightarrow 3,3→43 \rightarrow 4,4→5→34 \rightarrow 5 \rightarrow 3。
  • 长度 33 的旅行:4→64 \rightarrow 6,1→2→31 \rightarrow 2 \rightarrow 3,3→4→53 \rightarrow 4 \rightarrow 5,5→3→45 \rightarrow 3 \rightarrow 4。
    第 1111 短旅行(长度 44)例如为:5→3→4→55 \rightarrow 3 \rightarrow 4 \rightarrow 5。

附加样例

  1. n=10,k=46n=10, k=46,道路长度随机,形成链状网络,仅有 4545 条可行旅行,答案为 −1-1;
  2. n=15,k=1012n=15, k=10^{12},每对城市间有长度 33 的道路。

数据范围与提示

对于 25%25\% 的数据,k≤1000000k \leq 1000000。
对于 50%50\% 的数据,每条道路 c=1c=1。
对于 75%75\% 的数据,n≤15,m≤200,k≤1012n \leq 15, m \leq 200, k \leq 10^{12}。