AT_abc191_e.[ABC191E] Come Back Quickly

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

在 AtCoder 国,有 NN 个城镇,编号为 11 到 NN,以及 MM 条道路,编号为 11 到 MM。
第 ii 条道路是从城镇 AiA_i 到城镇 BiB_i 的单向道路,通行需要 CiC_i 分钟。可能存在 Ai=BiA_i = B_i 的情况,也可能存在多条道路连接同一对城镇。
高桥君打算在这个国家散步。他将“正确的散步路线”定义为:从某个城镇出发,经过至少一条道路,最终回到出发的城镇的路径。
请你对于每个城镇,判断是否存在从该城镇出发的正确散步路线。如果存在,请求出经过这样的路线所需的最短时间。

输入格式

输入通过标准输入给出,格式如下:

NN MM
A1A_1 B1B_1 C1C_1
A2A_2 B2B_2 C2C_2
A3A_3 B3B_3 C3C_3
⋮\vdots
AMA_M BMB_M CMC_M

输出格式

请输出 NN 行。对于第 ii 行:

  • 如果存在从城镇 ii 出发的正确散步路线,输出经过该路线所需的最短时间。
  • 如果不存在,输出 −1-1。

输入输出样例

  • 输入#1

    4 4
    1 2 5
    2 3 10
    3 1 15
    4 3 20

    输出#1

    30
    30
    30
    -1
  • 输入#2

    4 6
    1 2 5
    1 3 10
    2 4 5
    3 4 10
    4 1 10
    1 1 10

    输出#2

    10
    20
    30
    20
  • 输入#3

    4 7
    1 2 10
    2 3 30
    1 4 15
    3 4 25
    3 4 20
    4 3 20
    4 3 30

    输出#3

    -1
    -1
    40
    40

说明/提示

限制条件

  • 1≤N≤20001 \leq N \leq 2000
  • 1≤M≤20001 \leq M \leq 2000
  • 1≤Ai≤N1 \leq A_i \leq N
  • 1≤Bi≤N1 \leq B_i \leq N
  • 1≤Ci≤1051 \leq C_i \leq 10^5
  • 输入均为整数

样例解释 1

通过道路 1,2,31, 2, 3,城镇 1,2,31, 2, 3 形成了一个环,绕一圈需要 3030 分钟。从城镇 44 可以到达城镇 1,2,31, 2, 3,但无法回到城镇 44。

样例解释 2

可能存在 Ai=BiA_i = B_i 的道路。在这种情况下,从城镇 11 出发,仅使用道路 66,可以在 1010 分钟内回到城镇 11。

样例解释 3

请注意,可能存在多条道路连接同一对城镇。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页