luogu#P7407. [JOI 2021 Final] ロボット

[JOI 2021 Final] ロボット

题目描述

给定一个 NN 点无向图,这 NN 个点编号为 1N1 \sim N,由 MM 条边连接,这 MM 条边编号为 1M1 \sim M,分别连接点 AiA_i 与点 BiB_i。这 MM 条边染上了颜色,第 ii 条边的颜色为 CiC_i,保证 Ci[1,M]C_i \in [1,M] 但不保证 CiC_i 互不相等。

你很智能,如果我说一种颜色 LL,满足下面这些要求的话:

  • 存在一条边的颜色为 LL 且一个端点为你现在在的点。
  • 不存在大于等于两条边满足颜色为 LL 且一个端点为你现在在的点。

你就会移动到这条边走向对面的端点,否则你就会原地不动。

你现在在点 11 处,我要你移动到点 NN 处,我可以告诉你一些颜色你按照这些颜色走。但这个图有可能不满足能从 11 走向 NN 这个条件,因此我要改变一些边的颜色。改变第 ii 条边的颜色使其变为另一个在区间 [1,M][1,M] 里的数需要的代价为 PiP_i,我想问,至少需要多少代价才能让你成功移动到点 NN

输入格式

第一行两个整数 N,MN,M 代表无向图点数和边数。

接下来 MM 行每行四个整数 Ai,Bi,Ci,PiA_i,B_i,C_i,P_i 描述一条边。

输出格式

一行一个整数代表最小代价,如果无法到达输出 1-1

4 6
1 4 4 4
3 4 1 3
1 3 4 4
2 4 3 1
2 3 3 2
1 2 4 2
3
5 2
1 4 1 2
3 5 1 4
-1
5 7
2 3 7 1
1 4 5 1
4 5 3 1
3 4 7 1
2 4 3 1
3 5 6 1
1 2 5 1
1

提示

样例 1 解释

我可以进行如下操作:

  • 将第 44 条边的颜色改为 44,代价 11
  • 将第 66 条边的颜色改为 22,代价 22

总代价 33,然后我如下使唤你:

  • 我说“颜色 22!”你从点 11 移动到点 22
  • 我说“颜色 44!”你从点 22 移动到点 44

样例 2 解释

很遗憾,即使如此智能的你也到达不了第 NN 个点。

数据规模与约定

本题采用捆绑测试。

  • Subtask 1(34 pts):N1000N \le 1000M2000M \le 2000
  • Subtask 2(24 pts):Pi=1P_i=1
  • Subtask 3(42 pts):无特殊限制。

对于 100%100\% 的数据,2N1052 \le N \le 10^51M2×1051 \le M \le 2 \times 10^51Ai<BiN1 \le A_i<B_i \le N1CiM1 \le C_i \le M1Pi1091 \le P_i \le 10^9,保证图无重边。

说明

翻译自 The 20th Japanese Olympiad in Informatics Final Round D ロボット的英文翻译 Robot