P15716 [JAG 2023 Summer Camp #2] Drifting

题目描述

给定一个有 $N$ 个顶点和 $M$ 条边的带权有向图,顶点编号为 $1$ 到 $N$,边编号为 $1$ 到 $M$。第 $i$ 条边($1 \leq i \leq M$)从顶点 $u_i$ 连接到顶点 $v_i$($u_i < v_i$),边的权重为 $w_i$。 此外,给定 $K$ 个整数三元组。第 $i$ 个($1 \leq i \leq K$)三元组是 $(a_i, b_i, c_i)$($a_i < b_i < c_i$)。 你从顶点 $1$ 出发,通过反复沿着边移动,最终到达顶点 $N$。 此外,对于所有 $i$($1 \leq i \leq K$),如果你直接从顶点 $a_i$ 移动到顶点 $b_i$,那么接下来你必须移动到一个不同于顶点 $c_i$ 的顶点。 判断是否有可能到达顶点 $N$。如果有可能到达,同时计算你所经过边的权重之和的最小值。

输入格式

$$ \begin{aligned} &N \ M \\ &u_1 \ v_1 \ w_1 \\ &u_2 \ v_2 \ w_2 \\ &\vdots \\ &u_M \ v_M \ w_M \\ &K \\ &a_1 \ b_1 \ c_1 \\ &a_2 \ b_2 \ c_2 \\ &\vdots \\ &a_K \ b_K \ c_K \end{aligned} $$ 输入满足以下约束: - 所有输入均为整数。 - $3 \leq N \leq 2 \times 10^5$ - $0 \leq M \leq 2 \times 10^5$ - $1 \leq u_i < v_i \leq N \ (1 \leq i \leq M)$ - $i \neq j \Rightarrow (u_i, v_i) \neq (u_j, v_j) \ (1 \leq i, j \leq M)$ - $1 \leq w_i \leq 10^9 \ (1 \leq i \leq M)$ - $0 \leq K \leq 2 \times 10^5$ - $1 \leq a_i < b_i < c_i \leq N \ (1 \leq i \leq K)$

输出格式

如果无法到达顶点 $N$,输出 $-1$。否则,输出你所经过边的权重之和的最小值。

说明/提示

在样例输入 1 中,最优移动路径是 $1 \rightarrow 3 \rightarrow 4$。 在样例输入 2 中,最优移动路径是 $1 \rightarrow 2 \rightarrow 4 \rightarrow 6 \rightarrow 7$。 翻译由 DeepSeek V3.2 完成