AT_abc197_f [ABC197F] Construct a Palindrome

题目描述

有一个包含 $N$ 个顶点和 $M$ 条边的连通无向图(不一定是简单图)。 第 $i$ 条边连接顶点 $A_i$ 和顶点 $B_i$,并且上面写有一个字母 $C_i$。 你可以从顶点 $1$ 走到顶点 $N$,路径上可以多次经过同一条边或顶点。 请任选一条这样的路径,将经过的边上的字母按顺序排列,得到一个字符串。 请判断是否存在使得该字符串为回文串的路径。如果存在,求所有可能的回文串中最短的长度;如果不存在,输出 $-1$。

输入格式

输入以如下格式从标准输入读入。 > $N$ $M$ > $A_1$ $B_1$ $C_1$ > $A_2$ $B_2$ $C_2$ > $A_3$ $B_3$ $C_3$ > $\vdots$ > $A_M$ $B_M$ $C_M$

输出格式

如果可以构造出回文串,输出所有可能回文串长度的最小值;否则输出 $-1$。

说明/提示

## 限制条件 - $2 \leq N \leq 1000$ - $1 \leq M \leq 1000$ - $1 \leq A_i \leq N$ - $1 \leq B_i \leq N$ - $C_i$ 是小写英文字母 - 给定的图是连通的 ## 样例解释 1 按边 $1, 2, 3, 1, 2, 4, 5, 6, 7, 8$ 的顺序经过,得到的字符串为 `abcabbacba`,这是一个回文串。无法构造更短的回文串,因此答案为 $10$。 ## 样例解释 2 按边 $2, 3, 4, 5, 5$ 的顺序经过,可以得到字符串 `aabaa`,这是一个回文串。注意可以多次经过同一条边或顶点。 ## 样例解释 3 无法构造出回文串。 由 ChatGPT 4.1 翻译