#P17199. PM8791第K短路
PM8791第K短路
题目描述
给定一个带正权的有向图,它满足以下两个条件:
- 每个顶点至多属于一个简单环;
- 对任意两个顶点 ,从 到 至多存在一条简单路径。
图由一个 的数字字符矩阵描述。第 行第 个字符为 0,表示不存在从 到 的边;否则该字符是 1 到 9,表示从 到 的有向边的权值。
给定起点 、终点 和正整数 ,求从 到 的第 短游走的长度。游走可以重复经过顶点和边,因此可以反复绕行图中的环。
如果多条不同游走的长度相同,它们仍要分别计数。如果从 到 的游走不足 条,输出 。
输入格式
第一行包含四个整数 ,分别表示顶点数、所求排名、起点和终点。
接下来 行,每行包含一个长度为 的数字字符串,描述图的邻接矩阵。
顶点编号为 到 。
输出格式
输出一个整数,表示从 到 的第 短游走的长度;如果这样的游走不存在,输出 。
样例 1
4 1 0 2
0100
0020
0003
4000
3
样例 2
4 2 0 2
0100
0020
0003
4000
13
样例 3
3 1 1 2
011
000
000
-1
样例 4
6 3 0 3
010000
001010
000101
000000
010000
001000
5
数据范围与保证
- ;
- ;
- 且 ;
- 邻接矩阵中的字符均为
0到9; - 矩阵主对角线上的字符均为
0; - 图满足题目描述中的两项结构限制。
术语说明
- 简单路径是一个顶点互不相同的有序序列,序列中每个顶点都有一条边指向下一个顶点;
- 简单环首尾顶点相同,除首尾外的其余顶点互不相同,并且序列中每个顶点都有一条边指向下一个顶点。
说明
样例 1 中的最短游走为 ,长度为 。
样例 2 中可以沿环 绕行一次,再到达顶点 ,得到长度为 的第二短游走。
样例 4 中最短游走长度为 ,随后两条不同游走的长度都为 ,因此第三短游走的长度为 。