Problem 3737 --收衣服(sort)

3737: 收衣服(sort)

"
Time Limit $1$ 秒/Second(s) Memory Limit $128$ 兆字节/Megabyte(s)
提交总数 $2$ 正确数量 $1$
裁判形式 标准裁判/Standard Judge 我的状态 尚未尝试
难度 分类标签
看着这么多蒙灰的衣服,他们俩欲哭无泪;而且,有的衣服是没法一起洗的,为了分门别类,小可可给了每件衣服一个 1 ∼ n 的两两不同的标号,其中 n 是衣服的件数,把衣服排成1, 2, . . . , n 的顺序再洗会比较方便。
小可可还想到,我们可以把一段连续的晾衣架拿出来,在手上翻转顺序,再放回去。作为 OI选手的你,马上抽象出了小可可排序衣服的算法:我们设初始时从左往右第 i 件衣服的标号为 pi,按 1, 2, . . . , n−1 的顺序枚举 i,设 pi , pi+1, . . . , pn 中标号最小的是 pj,那么将 pi , pi+1, . . . , pj−1, pj左右翻转变成 pj , pj−1, . . . , pi+1, pi。小雪很快发现,小可可的算法看似厉害,实际上很傻——在天色的影响下,大家都分不出衣服的标号了。于是他们只能回到房间进行理性愉悦:我们假设左右翻转区间 [i, j] 的操作代价是
wi,j,一次排序的代价是每次翻转的操作代价之和。现在小可可想知道,当p遍n!时,和。
只用输出答案对 998244353(= 7 × 17 × 2 23+ 1,一个质数)取模后的值。
第一行一个整数 n。
下面 n − 1 行,第 i(1 ≤ i ≤ n) 行 n − i + 1个空格隔开的整数,第 j 个表示 wi,j。
一行一个整数表示答案对 998244353 取模的结果。
5
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1080
【样例解释】
我们举一个例子,当 p = [3, 2, 5, 1, 4] 时,算法的执行步骤如下:
执行到 i = 1,p1, p2, p3, p4, p5 即 3, 2, 5, 1, 4 中的最小值为 p4 = 1,我们翻转区间 [1, 4],p
变为 [1, 5, 2, 3, 4],代价为 w1,4 = 4;
执行到 i = 2,p2, p3, p4, p5 即 5, 2, 3, 4 中的最小值为 p3 = 2,我们翻转区间 [2, 3],p 变为
[1, 2, 5, 3, 4],代价为 w2,3
= 2;
执行到 i = 3,p3, p4, p5
即 5, 3, 4 中的最小值为 p4 = 3,我们翻转区间 [3, 4],p 变为
[1, 2, 3, 5, 4],代价为 w3,4
= 2;
执行到 i = 4,p4, p5 即 5, 4 中的最小值为 p5 = 4,我们翻转区间 [4, 5],p 变为 [1, 2, 3, 4, 5],
代价为 w4,5 = 2。
可以看到,算法执行到第 i 步结束时,序列的 [1, i] 位置上恰好是 [1, i] 号衣服,算法结束后
p 被排好了序。这次排序总共付出了 4 + 2 + 2 + 2 = 10 的代价。
注意:算法一定会执行n − 1步,即使中间就排好了序也不会提前退出。

推荐代码 查看3737 所有题解 上传题解视频得图灵币

本题记录 用 户(点击查看用户) 运行号(点击购买题解) 时 间
算法最快[$2 $ms] 粮食哥哥 742557 2021-04-22 13:08:24
内存最少[$2120 $KB] 粮食哥哥 742557 2021-04-22 13:08:24
第一AC 粮食哥哥 742557 2021-04-22 13:08:24
第一挑战 hello张奕源 741019 2021-04-19 17:42:05

赛题来源/所属竞赛 “科大国创杯”2021 年安徽省青少年信息学科普日活动 初中组试题 N/A

竞赛编号 竞赛名称 竞赛时间 访问比赛