传统题 10000ms 128MiB

路径翻转

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

路径翻转

题目描述

给定一个包含 N N 个顶点和 M M 条边的有向图。第 i i 条边(1≤i≤M 1 \leq i \leq M )从顶点 ui u_i 指向顶点 vi v_i 。

初始时,你位于顶点 1 1 ,需要通过重复以下两种操作到达顶点 N N ,请计算所需的最小总成本:

  • 移动操作:从当前顶点沿边移动到相邻顶点,成本为 1 1 。具体来说,设当前顶点为 v v ,选择一条从 v v 指向 u u 的边,移动到顶点 u u 。
  • 翻转操作:反转所有边的方向,成本为 X X 。具体来说,操作前所有从 v v 到 u u 的边,操作后将变为从 u u 到 v v 的边,反之亦然。

题目保证存在从顶点 1 1 到顶点 N N 的操作序列。

输入格式

第一行输入三个整数 N N 、M M 、X X ; 接下来 M M 行,每行输入两个整数 ui u_i 、vi v_i ,表示第 i i 条有向边从 ui u_i 指向 vi v_i 。

输出格式

输出到达顶点 N N 的最小总成本。

样例

样例输入 1

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

样例输出 1

4

样例解释 1

通过以下操作序列达成目标,总成本为 4 4 :

  1. 花费 1 1 从顶点 1 1 移动到顶点 2 2 ;
  2. 花费 1 1 从顶点 2 2 移动到顶点 4 4 ;
  3. 花费 1 1 从顶点 4 4 移动到顶点 3 3 ;
  4. 花费 1 1 从顶点 3 3 移动到顶点 5 5 。

不存在总成本为 3 3 或更小的方案,因此输出 4 4 。

样例输入 2

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

样例输出 2

3

样例解释 2

通过以下操作序列达成目标,总成本为 3 3 :

  1. 花费 1 1 从顶点 1 1 移动到顶点 2 2 ;
  2. 花费 1 1 执行翻转操作,反转所有边的方向;
  3. 花费 1 1 从顶点 2 2 移动到顶点 5 5 。

不存在总成本为 2 2 或更小的方案,因此输出 3 3 。

样例输入 3

8 7 613566756
2 1
2 3
4 3
4 5
6 5
6 7
8 7

样例输出 3

4294967299

样例解释 3

答案可能超过 32 位整数范围,需注意使用 64 位整数类型(如 C++ 的 long long)处理。

样例输入 4

20 13 5
1 3
14 18
18 17
12 19
3 5
4 6
13 9
8 5
14 2
20 18
8 14
4 9
14 8

样例输出 4

21

数据范围

  • 2≤N≤2×105 2 \leq N \leq 2 \times 10^5
  • 1≤M≤2×105 1 \leq M \leq 2 \times 10^5
  • 1≤X≤109 1 \leq X \leq 10^9
  • 1≤ui,vi≤N 1 \leq u_i, v_i \leq N (1≤i≤M 1 \leq i \leq M )
  • 所有输入值均为整数
  • 保证存在从顶点 1 1 到顶点 N N 的操作序列

子任务

子任务编号 分值 约束条件 特殊性质 子任务依赖
1−21-2 1010 N≤10N \leq 10,M≤20M \leq 20 无 无
3−43-4 N≤100N \leq 100,M≤2×103M \leq 2 \times 10^3 X=0X=0
5−65-6 N≤103N \leq 10^3,M≤2×103M \leq 2 \times 10^3 无
7−87-8 N≤104N \leq 10^4,M≤2×104M \leq 2 \times 10^4 X>=NX>=N
9−129-12 2020 无
13−1513-15 1515 N≤105N \leq 10^5,M≤2×105M \leq 2 \times 10^5 X=0X=0
16−2016-20 2525 N≤2×105N \leq 2 \times 10^5,M≤2×105M \leq 2 \times 10^5 无

csp-j/s 模拟赛

未参加
状态
已结束
规则
XCPC
题目
6
开始于
2025-10-25 8:00
结束于
2025-10-25 12:00
持续时间
4 小时
主持人
参赛人数
10