#P7623. [AHOI2021初中组] 收衣服

[AHOI2021初中组] 收衣服

题目背景

AHOI2021 初中组 T3

你可以选择跳过背景部分。

沉迷于虐待跳蚤游戏的小雪没有发觉时间过了多久,一抬头发现竟然天色大变!天空一片昏黄,一股怪味扑鼻而来。没想到在如此发达的 2077 年,城市中还能碰到沙尘暴,这超现实的场景让小雪怀疑是跳蚤国王显灵。

“别愣着了,快去收衣服呀!”小可可突然想到。

题目描述

看着这么多蒙灰的衣服,他们俩欲哭无泪;而且,有的衣服是没法一起洗的,为了分门别类,小可可给了每件衣服一个 1n1 \sim n 的两两不同的标号,其中 nn 是衣服的件数,把衣服排成 1,2,,n1,2,\ldots,n 的顺序再洗会比较方便。

小可可还想到,我们可以把一段连续的晾衣架拿出来,在手上翻转顺序,再放回去。作为 OI 选手的你,马上抽象出了小可可排序衣服的算法:我们设初始时从左往右第 ii 件衣服的标号为 pip_i,按 1,2,,n11,2,\ldots,n-1 的顺序枚举 ii,设 pi,pi+1,,pnp_i,p_{i+1},\ldots,p_n 中标号最小的是 pjp_j,那么将 pi,pi+1,,pj1,pjp_i,p_{i+1},\ldots,p_{j-1},p_j 左右翻转变成 pj,pj1,,pi+1,pip_j,p_{j-1},\ldots,p_{i+1},p_i

小雪很快发现,小可可的算法看似厉害,实际上很傻——在天色的影响下,大家都分不出衣服的标号了。于是他们只能回到房间进行理性愉悦:我们假设左右翻转区间 [i,j][i,j] 的操作代价是 wi,jw_{i,j},一次排序的代价是每次翻转的操作代价之和。现在小可可想知道,当 pp 取遍 n!n! 种排列时,所有情况的排序代价之和。

只用输出答案对 998244353998244353=7×17×223+1=7 \times 17 \times 2^{23} + 1,一个质数)取模后的值。

输入格式

第一行一个整数 nn

下面 n1n-1 行,第 i(1in)i(1 \le i \le n)ni+1n - i + 1 个空格隔开的整数,第 jj 个表示 wi,jw_{i,j}

输出格式

一行一个整数,表示答案对 998244353998244353 取模的结果。

5
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1080
见附加文件的 sort2.in。 
见附加文件的 sort2.ans。

提示

【样例 1 解释】

我们举一个例子,当 p=[3,2,5,1,4]p=[3,2,5,1,4] 时,算法的执行步骤如下:

  • 执行到 i=1i=1p1,p2,p3,p4,p5p_1,p_2,p_3,p_4,p_53,2,5,1,43,2,5,1,4 中的最小值为 p4=1p_4=1,我们翻转区间 [1,4][1,4]pp 变为 [1,5,2,3,4][1,5,2,3,4],代价为 w1,4=4w_{1,4}=4
  • 执行到 i=2i=2p2,p3,p4,p5p_2,p_3,p_4,p_55,2,3,45,2,3,4 中的最小值为 p3=2p_3=2,我们翻转区间 [2,3][2,3]pp 变为 [1,2,5,3,4][1,2,5,3,4],代价为 w2,3=2w_{2,3}=2
  • 执行到 i=3i=3p3,p4,p5p_3,p_4,p_55,3,45,3,4 中的最小值为 p4=3p_4=3,我们翻转区间 [3,4][3,4]pp 变为 [1,2,3,5,4][1,2,3,5,4],代价为 w3,4=2w_{3,4}=2
  • 执行到 i=4i=4p4,p5p_4,p_55,45,4 中的最小值为 p5=4p_5=4,我们翻转区间 [4,5][4,5]pp 变为 [1,2,3,4,5][1,2,3,4,5],代价为 w4,5=2w_{4,5}=2

可以看到,算法执行到第 ii 步结束时,序列的 [1,i][1,i] 位置上恰好是 [1,i][1,i] 号衣服,算法结束后 pp 被排好了序。这次排序总共付出了 4+2+2+2=104+2+2+2=10 的代价。

注意:算法一定会执行 n1n-1 步,即使中间就排好了序也不会提前退出。

【数据范围与提示】

提示:本题输入规模较大,请避免使用过慢的输入方式。

  • 对于 25%25\% 的数据,保证 1n91 \le n \le 9
  • 对于 50%50\% 的数据,保证 1n161 \le n \le 16
  • 对于 70%70\% 的数据,保证 1n501 \le n \le 50
  • 对于另外 15%15\% 的数据,保证 wi,j=1w_{i,j}=1
  • 对于 100%100\% 的数据,保证 1n5001 \le n \le 5000wi,j<9982443530 \le w_{i,j} < 998244353