#HK5259. 「NOISG 2023 Final」Airplane

「NOISG 2023 Final」Airplane

题目描述

译自 NOISG 2023 Final T3. Airplane

兔子本森想要驾驶飞机!

nn 个区域供本森飞行,编号从 11nn。每个区域 ii 因地形限制有最低飞行高度 a[i]a[i],本森在该区域飞行时必须达到此高度。

此外,由于盛行风条件和本森缺乏飞行经验(毕竟他是一只兔子),他只能在特定区域对之间飞行。有 mm 个这样的区域对,编号从 11mm,第 jj 个区域对 u[j]u[j]v[j]v[j] 表示本森可以在区域 u[j]u[j]v[j]v[j] 之间双向飞行。使用这些允许的区域对,总是可以从任一区域到达所有其他区域。

初始时,本森在区域 11,高度为 00。他希望前往区域 nn,并在着陆时高度必须为 00

每分钟,本森可以选择留在当前区域或前往另一区域。在同一分钟内,他的高度可以增加 11,减少 11 或保持不变。然而,当本森到达一个区域时,他的高度必须至少达到该区域要求的最低高度。本森在区域 nn 着陆所需的最短时间是多少?

输入格式

程序需从标准输入读取数据。

输入的第一行包含两个空格分隔的整数 nnmm,分别表示区域数量和本森可在区域间飞行的区域对数量。

下一行包含 nn 个空格分隔的整数 a[1],a[2],,a[n]a[1], a[2], \ldots, a[n],表示每个区域的最低飞行高度。

接下来的 mm 行,每行包含两个空格分隔的整数,第 jj 行包含 u[j]u[j]v[j]v[j],表示本森可以在区域 u[j]u[j]v[j]v[j] 之间双向飞行。

输出格式

程序需向标准输出输出结果。

输出一个整数,表示本森在区域 nn 着陆所需的最短时间。

3 2
0 2 0
1 2
2 3

4

本森从区域 11 前往区域 33,可在 44 分钟内完成:

  • 11 分钟,本森留在区域 11,高度从 00 增加到 11
  • 22 分钟,本森从区域 11 飞到区域 22,高度从 11 增加到 22
  • 33 分钟,本森从区域 22 飞到区域 33,高度从 22 减少到 11
  • 44 分钟,本森留在区域 33,高度从 11 减少到 00

这个样例满足所有子任务的限制。

11 12
0 0 0 0 0 0 2 2 1 5 0
1 2
2 3
3 4
4 5
5 6
6 11
1 7
7 8
8 9
9 11
1 10
10 11

5

本森从区域 11 前往区域 1111,可在 55 分钟内完成:

  • 11 分钟,本森留在区域 11,高度从 00 增加到 11
  • 22 分钟,本森从区域 11 飞到区域 77,高度从 11 增加到 22
  • 33 分钟,本森从区域 77 飞到区域 88,高度保持为 22
  • 44 分钟,本森从区域 88 飞到区域 99,高度从 22 减少到 11
  • 55 分钟,本森从区域 99 飞到区域 1111,高度从 11 减少到 00

这个样例满足子任务 2,3,42,3,4 的限制。

数据范围与提示

对于所有输入数据,满足:

  • 1n2000001 \leq n \leq 200000
  • 1m4000001 \leq m \leq 400000
  • 0a[i]1080 \leq a[i] \leq 10^{8}
  • a[1]=a[n]=0a[1]=a[n]=0
  • 1u[j],v[j]n,u[j]v[j]1 \leq u[j], v[j] \leq n, u[j] \neq v[j]

详细子任务附加限制及分值如下表所示:

子任务 分值 附加限制
11 2222 m=n1,u[j]=j,v[j]=j+1m=n-1, u[j]=j, v[j]=j+1
22 1010 n2000,m4000,a[i]2000n \leq 2000, m \leq 4000, a[i] \leq 2000
33 3131 n2000,m4000n \leq 2000, m \leq 4000
44 3737 无附加限制