A21614.最短路问题
NOI/NOI+/CTSC
通过率:0%
时间限制:1.00s
内存限制:512MB
题目描述
【问题描述】
一个 6∗n 的方格,初始每个格子有一个非负权值。有如下两种操作形式:
○改变一个格子的权值(改变以后仍然非负);
○求两个格子之间的最短路的权值。
【注解与任务】
任意格子 P 的坐标(xP,yP)满足 1≤xP≤6, 1≤yP≤n。格子 P 和 Q 的曼哈顿距离定义为∣xP−xQ∣+∣yP−yQ∣。一个有序方格序列(p1,p2,...,pn),若满足任意 pi 和 pi+1 的曼哈顿距离为 1,则称该序列为一条从 p1 到 pn 的路径,其权值为$d(p1) + d(p2) + ... + d(p_n)$,其中 d(P) 表示格子 P 的权值。两个格子 P 和 Q 之间的最短路定义为从 P 到 Q 权值最小的路径。
输入格式
第一行一个整数 n。接下来 6 行,每行 n 个整数,第 i+1 行第 j 个整数表示初始格子(i,j)的权值。接下来是一个整数 Q, 后面的 Q 行,每行描述一个操作。
输入的操作有以下两种形式:
操作 1: "1 x y c"(不含双引号)。表示将格子(x,y)的权值改成 c (1≤x≤6, 1≤y≤n, 0≤c≤10000) 。
操作 2: "2 x1 y1 x2 y2"(不含双引号)。表示询问格子(x1,y1)和格子(x2,y2)之间的最短路的权值。(1≤x1,x2≤6, 1≤y1,y2≤n)
输出格式
对于每个操作 2,按照它在输入中出现的顺序,依次输出一行一个整数表示
求得的最短路权值。
输入输出样例
输入#1
5 0 0 1 0 0 0 1 0 1 0 0 2 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 5 2 1 2 1 4 1 1 1 10000 2 1 2 1 4 1 2 3 10000 2 1 2 3 3
输出#1
0 1 2
说明/提示
数据编号 | n | Q | 数据编号 | n | Q |
---|---|---|---|---|---|
1 | 10 | 20 | 6 | 104 | 3×104 |
2 | 100 | 200 | 7 | 3.5×104 | 3×104 |
3 | 103 | 2×103 | 8 | 5×104 | 5×104 |
4 | 104 | 104 | 9 | 105 | 6×104 |
5 | 104 | 104 | 10 | 105 | 105 |