AT_abc022_c [ABC022C] Blue Bird

题目描述

高桥君居住的城市有 $N$ 个房屋和 $M$ 条道路。房屋编号为 $1$ 到 $N$ 的整数。高桥君住在 $1$ 号房屋。道路也编号为 $1$ 到 $M$。第 $i$ 条道路连接房屋 $u_i$ 和房屋 $v_i$,长度为 $l_i$ 米,是双向道路。 高桥君要寻找传说中的“幸福的蓝鸟”,据说它藏在城市的某个房屋里。实际上,“幸福的蓝鸟”就在高桥君的家里,高桥君自己也知道这一点。但如果不象征性地去寻找一下,气氛就不够热闹,所以他还是打算制定一个旅行计划。 高桥君打算从自己家出发,访问若干房屋,途中不重复经过同一条道路,最后回到自己家。在旅途中,他计划至少访问自己家以外的 $1$ 个房屋,以增加趣味性。高桥君希望尽快结束这场“闹剧”,因此他认为总路程最短的计划是最优的。 现在给出高桥君所在城市的房屋和道路信息,请你判断高桥君是否能制定出满足上述条件的最优计划。如果可以,请输出他所经过道路长度的最小总和。

输入格式

输入通过标准输入给出,格式如下: > $N$ $M$ > $u_1$ $v_1$ $l_1$ > $u_2$ $v_2$ $l_2$ > $\vdots$ > $u_M$ $v_M$ $l_M$ - 第 $1$ 行包含房屋数量 $N(3 \leq N \leq 300)$ 和道路数量 $M(3 \leq M \leq \frac{N(N-1)}{2})$,以空格分隔。 - 接下来的 $M$ 行中,第 $i$ 行包含第 $i$ 条道路连接的房屋编号 $u_i, v_i(1 \leq u_i < v_i \leq N)$ 以及道路长度 $l_i(1 \leq l_i \leq 10^5)$,以空格分隔。 - 对于 $i \neq j$,至少有 $u_i \neq u_j$ 或 $v_i \neq v_j$ 成立。

输出格式

如果无法制定出满足条件的最优计划,则输出 $-1$。如果可以,输出最短总路程的长度。输出末尾需换行。

说明/提示

### 样例解释 1 房屋和道路的分布如下所示: ![](/img/abc/022/ajfsieojafioes/C_sample1.png) 按 $1, 2, 5, 3, 4, 1$ 的顺序访问的计划是最优的。按 $1, 2, 1$ 的顺序访问的计划由于重复经过了第 $1$ 条道路,不满足条件。 ### 样例解释 2 无法制定出不重复经过同一条道路的旅行计划,因此输出 $-1$。 由 ChatGPT 4.1 翻译