AT_abc271_e.[ABC271E] Subsequence Path

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

某地区有 NN 个城镇,编号为 1 到 NN ,并且由 MM 条公路连接,编号 1 到 MM 。

每条公路都是有向的;而且编号为 i(1≤i≤M)i(1 \le i \le M) 的道路将带领你从编号 AiA_i 的城镇到编号为 BiB_i 的城镇去,它的长度为 CiC_i。

现在给你一个长度为 KK 的正整数序列 E=(E1,E2,...,EK)E=(E_1,E_2,...,E_K) 且 ∀i∈[1,K],Ei∈[1,M]\forall i \in [1,K],E_i \in [1,M] 。我们说一条由一些连通的公路组成的路径为“好路”,当且仅当满足以下条件:

  • 这条路径的起点为 1 ,终点为 NN 。
  • 按经过顺序组成这条路径的公路的编号组成的序列是 EE 的子序列。

注意,若序列 SS 是长度为 LL 的数列 TT 的子序列,则 SS 是数列 TT 删除任意 i (i∈[0,L])i\ (i\in [0,L]) 个元素得到的。

现在你要找到最短的“好路”。如果没有,输出 -1 。

输入格式

一切按照以下标准输入:

N M KA1 B1 C1⋮AM BM CME1 ... EKN\ M\ K\newline A_1\ B_1\ C_1\newline\vdots\newline A_M\ B_M\ C_M\newline E_1\ ...\ E_K

输出格式

输出最短的“好路”。如果没有,输出 -1 。

输入输出样例

  • 输入#1

    3 4 4
    1 2 2
    2 3 2
    1 3 3
    1 3 5
    4 2 1 2

    输出#1

    4
  • 输入#2

    3 2 3
    1 2 1
    2 3 1
    2 1 1

    输出#2

    -1
  • 输入#3

    4 4 5
    3 2 2
    1 3 5
    2 4 7
    3 4 10
    2 4 1 4 3

    输出#3

    14

说明/提示

  • $ 2\ \leq\ N\ \leq\ 2\ \times\ 10^5 $
  • $ 1\ \leq\ M,\ K\ \leq\ 2\ \times\ 10^5 $
  • $ 1\ \leq\ A_i,\ B_i\ \leq\ N,\ A_i\ \neq\ B_i\ ,\ (1\ \leq\ i\ \leq\ M) $
  • $ 1\ \leq\ C_i\ \leq\ 10^9\ ,\ (1\ \leq\ i\ \leq\ M) $
  • $ 1\ \leq\ E_i\ \leq\ M\ ,\ (1\ \leq\ i\ \leq\ K) $
  • 所有输入都是整数

样例解释

对于样例1,有两条好路:

  • 选择编号为 44 的公路。在这种情况下,“好路”的长度是 55 。
  • 依次选择编号为 11 和 22 的公路。在这种情况下,“好路”的长度就变为了 2+2=42+2=4 。

因此,输出的期望值为 44 。

对于样例2,没有“好路”,输出 -1 。

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

首页