#P15291. [MCO 2023] Love Letter

    ID: 15307 远端评测题 2500ms 256MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>2023广度优先搜索 BFS最短路MCC/MCO(马来西亚)

[MCO 2023] Love Letter

说明

nn 条龙,编号从 11nn。第 ii 条龙的年龄为 aia_iaia_i 的值互不相同。龙 11 是巨龙 Evirir。

Evirir 有一封信想寄给龙 tt。为了避免因年龄差异带来的尴尬,Evirir 可以将信件寄给另一条龙(不一定是龙 tt)。收到信件的龙可以再将信件寄给其他龙,以此类推。最终的目标是将信件送达龙 tt

对于所有 ii1in1 \le i \le n),当龙 ii 持有信件时,它可以将信件寄给龙 jj,耗时 aiaj|a_i - a_j| 1^1。一条龙可以花费 00 时间将信件“寄”给自己。然而,有 kk 对龙是亲密好友。如果龙 ii 和龙 jj 是亲密好友,那么龙 ii 寄信给龙 jj(反之亦然)所需时间则为 00

对于每条龙 tt1tn1 \le t \le n),请(独立地)回答以下问题:龙 11 将一封信寄到龙 tt 所需的最少总时间是多少?

1^1 注: x|x| 表示 xx 的绝对值。例如, 9=9|9| = 96=6\lvert -6 \rvert = 60=0|0| = 0

输入格式

第一行包含两个以空格分隔的整数 nnkk1n21051 \le n\le 2 \cdot 10^50k21050 \le k \le 2 \cdot 10^5)—— 分别表示龙的数量和亲密好友的对数。

第二行包含 nn互不相同 的、以空格分隔的整数 a1,a2,,ana_1, a_2, \ldots, a_n1ai1091 \le a_i \le 10^9)—— 每条龙的年龄。

接下来 kk 行,每行包含两个以空格分隔的整数 uuvv1u,vn1 \le u, v \le nuvu \ne v),表示龙 uu 和龙 vv 是亲密好友。保证同一对亲密好友不会出现两次(如果 (u,v)(u,v) 出现,则后续不会再次出现 (u,v)(u,v)(v,u)(v,u))。

输出格式

输出 nn 个以空格分隔的整数 d1,d2,,dnd_1, d_2, \ldots, d_n,其中 did_i 表示龙 11 将信件寄到龙 ii 所需的最少总时间。

8 4
50 30 23 10 3 67 69 47
3 7
3 1
2 4
7 1
0 7 0 7 14 2 0 3
3 0
2 3 1
0 1 1

提示

注释

第一个样例的解释:

t=1t = 1 时,耗时为 00,因为龙 11 已经持有信件。

t=3t = 3 时,由于龙 11 和龙 33 是亲密好友,龙 11 可以直接寄信给龙 33,耗时 00

t=2t = 2 时,龙 11 可以先将信寄给龙 33,耗时 00(它们是亲密好友),然后龙 33 将信寄给龙 22,耗时 2330=7|23 - 30| = 7。总耗时为 0+7=70 + 7 = 7

t=8t = 8 时,龙 11 可以直接寄信给龙 88,耗时 5047=3|50 - 47| = 3

以下是其余 tt 值各自的一种最优方案(ixji \xrightarrow{x} j 表示龙 ii 寄信给龙 jj,耗时 xx):

  • 44: $1 \xrightarrow{0} 3 \xrightarrow{7} 2 \xrightarrow{0} 4$
  • 55: $1 \xrightarrow{0} 3 \xrightarrow{7} 2 \xrightarrow{0} 4 \xrightarrow{7} 5$
  • 66: $1 \xrightarrow{0} 3 \xrightarrow{0} 7 \xrightarrow{2} 6$
  • 771071 \xrightarrow{0} 7

计分

子任务 11818 分): n,k2000n, k \le 2000ai=ia_i = i

子任务 21414 分): n,k2000n, k \le 2000

子任务 399 分): k=0k = 0

子任务 42929 分): 对于所有 ii1in1 \le i \le n),有 ai=ia_i = i

子任务 51616 分): 序列 aa 是非递减的,即对于 1in11 \le i \le n-1,有 aiai+1a_i \le a_{i+1}

子任务 61414 分): 无额外限制

翻译由 DeepSeek 完成