#P14051. [SDCPC 2019] Triangle City

    ID: 15823 远端评测题 3000ms 256MiB 尝试: 0 已通过: 0 显示难度普及+/提高− 上传者: 标签>2019山东Special JudgeXCPC

[SDCPC 2019] Triangle City

题目描述

三角城是一座拥有 n(n+1)2\frac{n(n+1)}{2} 个交叉路口的城市,这些交叉路口被排列成 nn 行 nn 列,其中第 ii 行有 ii 个交叉路口。

这些交叉路口通过双向道路相连。形式化地,令 (i,j)(i, j) 表示第 ii 行第 jj 列的交叉路口,对于所有 1≤j≤i<n1 \le j \le i < n:

  • 存在一条长度为 ai,ja_{i, j} 的道路连接交叉路口 (i,j)(i, j) 和 (i+1,j)(i + 1, j);
  • 存在一条长度为 bi,jb_{i, j} 的道路连接交叉路口 (i,j)(i, j) 和 (i+1,j+1)(i + 1, j + 1);
  • 存在一条长度为 ci,jc_{i, j} 的道路连接交叉路口 (i+1,j)(i + 1, j) 和 (i+1,j+1)(i + 1, j + 1)。

此外,对于所有 1≤j≤i<n1 \le j \le i < n,都存在一组三边分别为 ai,ja_{i, j}、bi,jb_{i, j} 和 ci,jc_{i, j} 的三角形,这正是这座城市被称为“三角城”的原因!

著名旅行家 BaoBao 刚刚抵达三角城,他计划从交叉路口 (1,1)(1, 1) 出发,在交叉路口 (n,n)(n, n) 结束旅程。为了充分享受美景,BaoBao 希望找到一条从 (1,1)(1, 1) 到 (n,n)(n, n) 的最长路径,要求每条道路最多经过一次。请帮助 BaoBao 寻找这样一条最长的路径。

请注意,如果一个三角形的三条边长分别为 aa,bb,cc,那么一定有 a+b>ca + b > c,a+c>ba + c > b 且 b+c>ab + c > a。

输入格式

有多组测试数据。输入的第一行为一个整数 TT,表示测试数据组数。对于每组测试数据:

第一行为一个整数 nn(2≤n≤3002 \le n \le 300),表示城市的规模。

接下来的 n−1n-1 行,第 ii 行包含 ii 个整数 ai,1,ai,2,…,ai,ia_{i, 1}, a_{i, 2}, \dots, a_{i, i}(1≤ai,j≤1091 \le a_{i, j} \le 10^9),表示连接交叉路口 (i,j)(i, j) 和 (i+1,j)(i+1, j) 的道路长度。

再接下来的 n−1n-1 行,第 ii 行包含 ii 个整数 bi,1,bi,2,…,bi,ib_{i, 1}, b_{i, 2}, \dots, b_{i, i}(1≤bi,j≤1091 \le b_{i, j} \le 10^9),表示连接交叉路口 (i,j)(i, j) 和 (i+1,j+1)(i+1, j+1) 的道路长度。

再接下来的 n−1n-1 行,第 ii 行包含 ii 个整数 ci,1,ci,2,…,ci,ic_{i, 1}, c_{i, 2}, \dots, c_{i, i}(1≤ci,j≤1091 \le c_{i, j} \le 10^9),表示连接交叉路口 (i+1,j)(i+1, j) 和 (i+1,j+1)(i+1, j+1) 的道路长度。

保证所有测试数据中 nn 的总和不超过 5×1035 \times 10^3。

输出格式

对于每组测试数据,输出三行。

第一行输出一个整数 ll,表示从 (1,1)(1, 1) 到 (n,n)(n, n) 的最长路径长度,且每条道路最多经过一次。

第二行输出一个整数 mm,表示最长路径上经过的交叉路口数量。

第三行输出 2m2m 个用空格隔开的整数 i1,j1,i2,j2,…,im,jmi_1, j_1, i_2, j_2, \dots, i_m, j_m,其中 (ik,jk)(i_k, j_k) 表示最长路径上的第 kk 个交叉路口。根据题意,保证有 (i1,j1)=(1,1)(i_1, j_1) = (1, 1) 且 (im,jm)=(n,n)(i_m, j_m) = (n, n)。

如果有多组合法解答,可以输出任意一组。

请勿在每一行行末输出多余的空格,否则你的解答可能会被判错!

3
2
3
2
4
2
1
1
1
3
100
100 100
1
100 1
100
100 100
7
3
1 1 2 1 2 2
2
3
1 1 2 1 2 2
700
8
1 1 2 1 3 2 2 2 2 1 3 1 3 2 3 3

提示

样例测试数据如下所示:

:::align{center} :::

由 ChatGPT 5 翻译