#P7297. [USACO21JAN] Telephone G

[USACO21JAN] Telephone G

题目描述

Farmer John 的 N 头奶牛,编号为 1N1…N,站成一行(1N51041≤N≤5⋅10^4)。第 ii 头奶牛的品种编号为 bib_i,范围为 1K1…K,其中 1K501≤K≤50。奶牛们需要你帮助求出如何最优地从奶牛 11 传输一条信息到奶牛 NN

从奶牛 ii 传输信息到奶牛 jj 花费时间 ij|i−j|。然而,不是所有品种的奶牛都愿意互相交谈,如一个 K×KK×K 的方阵 SS 所表示,其中如果一头品种 ii 的奶牛愿意传输一条信息给一头品种 jj 的奶牛,那么 Sij=1S_{ij}=1,否则为 00。不保证 Sij=SjiS_{ij}=S_{ji},并且如果品种 ii 的奶牛之间不愿意互相交流时可以有 Sii=0S_{ii}=0

请求出传输信息所需的最小时间。

输入格式

输入的第一行包含 NNKK

下一行包含 NN 个空格分隔的整数 b1,b2,,bNb_1,b_2,…,b_N

以下 KK 行描述了方阵 SS。每行包含一个由 KK 个二进制位组成的字符串,从上往下第 ii 个字符串的第 jj 位为 SijS_{ij}

输出格式

输出一个整数,为需要的最小时间。如果不可能从奶牛 11 传输信息至奶牛 NN,输出 1−1

5 4
1 4 2 3 4
1010
0001
0110
0100
6

提示

最优传输序列为 14351→4→3→5。总时间为 14+43+35=6|1−4|+|4−3|+|3−5|=6

测试点性质:

  • 测试点 1-5 满足 N1000N≤1000
  • 测试点 6-13 没有额外限制。

供题:Dhruv Rohatgi