CF1700A.Optimal Path

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Optimal Path

题目描述

最优路径

你得到一个大小为 n×m n \times m 的表 a a 。我们将考虑从上到下从 11 到 nn 编号的表格行,从左到右从 11 到 mm 编号的列。我们将在 i i -th 行和 j j -th 列中的单元格表示为 (i,j) (i, j) 。在单元格 (i,j) (i, j) 中有一个数字 (i−1)⋅m+j (i - 1) \cdot m + j ,即 aij=(i−1)⋅m+j a_{ij} = (i - 1) \cdot m + j 。

一只乌龟最初站在单元格 (1,1) (1, 1) 中,它想来到单元格 (n,m) (n, m) 。从单元格 (i,j) (i, j) 它可以一步转到单元格 (i+1,j) (i + 1, j) 或 (i,j+1) (i, j + 1) 之一,如果它存在的话。路径是一系列单元格,其中对于序列中的每两个相邻单元格,满足以下条件:乌龟可以一步从第一个单元格到达第二个单元格。路径的成本是写入路径单元格中的数字的总和。

例如,n=2 n = 2 和 m=3 m = 3 表格将如上所示。海龟可以走以下路径: $(1, 1) \rightarrow (1, 2) \rightarrow (1, 3) \rightarrow (2, 3)$ 。这种方式的成本等于 a11+a12+a13+a23=12 a_{11} + a_{12} + a_{13} + a_{23} = 12 。另一方面,路径 $(1, 1) \rightarrow (1, 2) \rightarrow (2, 2) \rightarrow (2, 1)$ 和 (1,1)→(1,3) (1, 1) \rightarrow (1, 3) 是不正确的,因为在第一条路径中乌龟不能迈出一步 (2,2)→(2,1) (2, 2) \rightarrow (2, 1) ,而在第二条路径中它不能迈出一步 (1,1)\右箭头(1,3) (1, 1) \右箭头 (1, 3) 。

你被要求告诉海龟从单元 (1,1) (1, 1) 到单元 (n,m) (n, m) 的路径的最小可能成本。请注意,单元格 (1,1) (1, 1) 和 (n,m) (n, m) 是其中的一部分。

输入格式

第一行包含一个整数 t t ( 1≤t≤1000 1 \leq t \leq 1000 ) — 测试用例的数量。测试用例的描述如下。

每个测试用例的一行包含两个整数 n n 和 m m ( 1≤n,m≤104 1 \leq n, m \leq 10^4 ) — 分别是表 a a 的行数和列数。

输出格式

对于每个测试用例,输出一个整数——从单元格 (1,1) (1, 1) 到单元格 (n,m) (n, m) 的路径的最小可能成本。

样例#1

样例输入示例 #1

7
1 1
2 3
3 2
7 1
1 10
5 5
10000 10000

样例输出#1

1
12
13
28
55
85
500099995000

说明/提示

在第一个测试用例中,唯一可能的路径由单个单元格 (1,1) (1, 1) 组成。

语句中显示了第二个测试用例中成本最低的路径。

在第四和第五个测试用例中,从 (1,1) (1, 1) 到 (n,m) (n, m) 只有一条路径。两条路径都访问表中的每个单元格。

样例

7
1 1
2 3
3 2
7 1
1 10
5 5
10000 10000
1
12
13
28
55
85
500099995000

在线编程 IDE

建议全屏模式获得最佳体验