AT_joi2020ho_d.オリンピックバス (Olympic Bus)

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

JOI 国有 NN 个城市,编号从 11 到 NN。此外,有 MM 条单向公交线路,编号从 11 到 MM。第 ii 条公交线路(1≤i≤M1 \leq i \leq M)从城市 UiU_i 开往城市 ViV_i,票价为 CiC_i 日元。在第 ii 条公交线路上,除了在城市 UiU_i 上车和城市 ViV_i 下车外,不能在其他城市上下车。可能存在多条从同一城市出发到同一城市的公交线路。

JOI 国即将举办奥运会。运输大臣 K 理事长打算选择至多一条公交线路,在奥运会期间将其行驶方向反转,且票价不变。也就是说,如果选择了第 ii 条公交线路(1≤i≤M1 \leq i \leq M),那么在奥运会期间,这条线路将从城市 UiU_i 开往城市 ViV_i 改为从城市 ViV_i 开往城市 UiU_i。不过,反转第 ii 条公交线路的方向需要花费 DiD_i 日元,这笔费用由 K 理事长自掏腰包支付。为避免混乱,公交线路的方向只能在奥运会开始前反转,期间不能再次更改。

K 理事长计划在奥运会期间,从城市 11 到城市 NN 并返回,乘坐公交线路往返一次。希望通过巧妙选择反转的公交线路,使得往返总票价与反转费用之和最小。

给定城市数量和公交线路的信息,请编写程序,计算通过选择合适的公交线路反转方向后,从城市 11 到城市 NN 往返的总票价与反转费用之和的最小值。如果无论如何选择公交线路都无法完成往返,则输出 −1-1。

输入格式

输入以如下格式从标准输入读入。所有输入均为整数。

NN MM
U1U_1 V1V_1 C1C_1 D1D_1
⋮\vdots
UMU_M VMV_M CMC_M DMD_M

输出格式

请输出一行,从城市 11 到城市 NN 往返的总票价与反转费用之和的最小值。如果无论如何选择公交线路都无法完成往返,则输出 −1-1。

输入输出样例

  • 输入#1

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

    输出#1

    10
  • 输入#2

    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

    输出#2

    10
  • 输入#3

    4 4
    1 2 0 4
    1 3 0 1
    4 3 0 2
    4 1 0 1

    输出#3

    2
  • 输入#4

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

    输出#4

    12
  • 输入#5

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

    输出#5

    -1

说明/提示

约束

  • 2≤N≤2002 \leq N \leq 200。
  • 1≤M≤50 0001 \leq M \leq 50\,000。
  • 1≤Ui≤N1 \leq U_i \leq N(1≤i≤M1 \leq i \leq M)。
  • 1≤Vi≤N1 \leq V_i \leq N(1≤i≤M1 \leq i \leq M)。
  • Ui≠ViU_i \neq V_i(1≤i≤M1 \leq i \leq M)。
  • 0≤Ci≤1 000 0000 \leq C_i \leq 1\,000\,000(1≤i≤M1 \leq i \leq M)。
  • 0≤Di≤1 000 000 0000 \leq D_i \leq 1\,000\,000\,000(1≤i≤M1 \leq i \leq M)。

子任务

1.(5 分)M≤1 000M \leq 1\,000。
2.(11 分)MM 为偶数,且 U2i−1=U2iU_{2i-1} = U_{2i},V2i−1=V2iV_{2i-1} = V_{2i},C2i−1=C2iC_{2i-1} = C_{2i}(1≤i≤M21 \leq i \leq \frac{M}{2})。
3.(21 分)Ci=0C_i = 0(1≤i≤M1 \leq i \leq M)。
4.(63 分)无额外约束。

样例解释 1

如果以 11 的费用反转第 22 条公交线路的方向,则从城市 11 到城市 44 的最小票价为 66,从城市 44 到城市 11 的最小票价为 33,往返总票价加上反转费用为 1010。无法使往返总票价与反转费用之和小于 1010,因此输出 1010。

样例解释 2

本输入输出样例满足子任务 22 的约束。

样例解释 3

本输入输出样例满足子任务 33 的约束。

样例解释 4

可以不反转任何公交线路。

样例解释 5

在本输入样例中,存在两条从城市 44 到城市 33 的公交线路。

由 ChatGPT 4.1 翻译

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

首页