#P3485. [POI2009] BAJ-The Walk of Bytie-boy

    ID: 2540 远端评测题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>动态规划,dp2009POISpecial Judge广度优先搜索,BFS

[POI2009] BAJ-The Walk of Bytie-boy

题目背景

English Edition

题目描述

给出一张 nn 个点 mm 条边的有向图,每条边上有一个字母,并给出一个整数 dd 和一个序列 s1,s2,,sds_1, s_2, \dots, s_d

你需要对每一个 i(1i<n)i(1\le i<n) 求出一条从 sis_isi+1s_{i+1} 的最短路径满足这条路径上的边上的字母连起来后是回文的。

不保证每个点最多只在 ss 中出现一次。

输入格式

第一行两个整数 n,mn, m

之后 mm 行,每行两个整数 xi,yix_i, y_i 与一个字母 cic_i,表示有一条从 xix_iyiy_i 的边,这条边上的字母是 cic_i

之后一行一个整数 dd

之后一行 dd 个整数, 表示序列 ss

输出格式

输出共 d1d-1 行,第 ii 行输出一条从 sis_isi+1s_{i+1} 的满足条件的路径。

若不存在这样的路径,则输出 -1,否则输出这条路径上的所有字母。

如果有多条满足条件的路径,任意输出一条即可。

6 7
1 2 a
1 3 x
1 4 b
2 6 l
3 5 y
4 5 z
6 5 a
3
1 5 3

3 ala
-1

提示

对于 100%100\% 的数据,2n4002\le n\le 4001m6×1041\le m\le 6\times10^41xi,yin1\le x_i,y_i\le n2d1002\le d\le1001sin1\le s_i\le n

同时保证不会出现重边与自环。