AT_abc232_g [ABC232G] Modulo Shortest Path
题目描述
有一个包含 N 个顶点的有向图。N 个顶点分别被称为顶点 1、顶点 2、…、顶点 N。
对于每一组满足 1≤i,j≤N 且 i=j 的整数对 (i,j),存在一条从顶点 i 指向顶点 j 的有向边,其权值为 (Ai+Bj)modM。(其中,xmody 表示 x 除以 y 的余数。)
除此之外,没有其他边。
请输出从顶点 1 到顶点 N 的最短距离,即从顶点 1 到顶点 N 的路径上所有边权之和的最小值。
输入格式
输入以以下格式从标准输入读入。
N M A1 A2 … AN B1 B2 … BN
输出格式
请输出从顶点 1 到顶点 N 的路径上所有边权之和的最小值。
输入输出样例 #1
输入 #1
4 12
10 11 6 0
8 7 4 1
输出 #1
3
输入输出样例 #2
输入 #2
10 1000
785 934 671 520 794 168 586 667 411 332
363 763 40 425 524 311 139 875 548 198
输出 #2
462
说明/提示
限制条件
- 2≤N≤2×105
- 2≤M≤109
- 0≤Ai,Bj<M
- 输入均为整数
样例解释 1
如下所示,用 i→j 表示从顶点 i 指向顶点 j 的有向边。考虑路径 1→3→2→4,则:
- 边 1→3 的权值为 (A1+B3)modM=(10+4)mod12=2;
- 边 3→2 的权值为 (A3+B2)modM=(6+7)mod12=1;
- 边 2→4 的权值为 (A2+B4)modM=(11+1)mod12=0。
因此,这条路径的边权和为 2+1+0=3。这就是从顶点 1 到顶点 N 的路径上所有边权之和的最小值。
由 ChatGPT 4.1 翻译