luogu#P6880. [JOI 2020 Final] オリンピックバス

[JOI 2020 Final] オリンピックバス

题目描述

给定一个 NNMM 边的有向图,每条边从 UiU_i 指向 ViV_i,经过这条边的代价为 CiC_i

点编号为 11NN

我们可以翻转一条边,即让他从 UiU_i 指向 ViV_i 变为从 ViV_i 指向 UiU_i,这时会有 DiD_i 的代价产生。

你要从点 11 到点 NN,再从点 NN 回到点 11,你想知道,通过翻转一条边,或者不翻转,能得到的最小代价和为多少?

输入格式

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

接下来 MM 行每行四个整数 Ui,Vi,Ci,DiU_i,V_i,C_i,D_i 代表一条边。

输出格式

一行一个整数代表最小代价和。无解输出 1-1

4 5
1 2 4 4
1 3 2 1
4 3 1 2
4 1 6 1
2 4 2 5
10
4 10
1 2 4 4
1 2 4 4
1 3 2 1
1 3 2 1
4 3 1 2
4 3 1 2
4 1 6 1
4 1 6 1
2 4 2 5
2 4 2 5
10
4 4
1 2 0 4
1 3 0 1
4 3 0 2
4 1 0 1
2
4 5
1 2 4 4
1 3 2 4
4 3 1 5
4 1 6 1
2 4 2 5
12
4 5
2 1 4 4
1 3 2 1
4 3 1 2
4 3 6 1
2 4 2 5
-1

提示

样例 1 解释

最优解为翻转第二条边,总代价为:

  • 翻转的代价 11
  • 从点 11 到点 NN 再返回的最短路径 124311 \to 2 \to 4 \to 3 \to 1,代价为 4+2+1+2=94+2+1+2=9

样例 4 解释

不一定需要翻转某条边。

样例 5 解释

从点 44 到点 33 的边有两条。

数据规模与约定

本题采用捆绑测试。

  • Subtask 1(5 pts):M1000M \le 1000
  • Subtask 2(11 pts):MM 为偶数,且 U2i=U2i1U_{2i}=U_{2i-1}V2i=V2i1V_{2i}=V_{2i-1}C2i=C2i1C_{2i}=C_{2i-1}
  • Subtask 3(21 pts):Ci=0C_i=0
  • Subtask 4(63 pts):无特殊限制。

对于 100%100\% 的数据:

  • 2N2002 \le N \le 200
  • 1M5×1041 \le M \le 5 \times 10^4
  • 1UiN1 \le U_i \le N
  • 1ViN1 \le V_i \le N
  • UiViU_i \ne V_i
  • 0Ci1060 \le C_i \le 10^6
  • 0Di1090 \le D_i \le 10^9

说明

翻译自 第 19 回日本情報オリンピック 本選 D オリンピックバス