2687 问题 E: 蓝桥杯2022年第十三届省赛真题-全排列的价值

时间限制: 1s 内存限制: 512MB 提交: 3836 解决: 758
题目描述

对于一个排列 A = (a1, a2, · · · , an),定义价值 ci 为 a1 至 ai−1 中小于 ai 的数的个数,即 bi = |{aj | j < i, aj < ai}|。定义 A 的价值为蓝桥杯2022年第十三届省赛真题全排列的价值

给定 n,求 1 至 n 的全排列中所有排列的价值之和。

输入
输入一行包含一个整数 n 。
输出
输出一行包含一个整数表示答案,由于所有排列的价值之和可能很大,请输出这个数除以 998244353 的余数。
样例输入
3
样例输出
9
提示

1 至 3 构成的所有排列的价值如下:

(1, 2, 3) : 0 + 1 + 2 = 3 ;

(1, 3, 2) : 0 + 1 + 1 = 2 ;

(2, 1, 3) : 0 + 0 + 2 = 2 ;

(2, 3, 1) : 0 + 1 + 0 = 1 ;

(3, 1, 2) : 0 + 0 + 1 = 1 ;

(3, 2, 1) : 0 + 0 + 0 = 0 ;

故总和为 3 + 2 + 2 + 1 + 1 = 9。 

对于 40% 的评测用例,n ≤ 20 ;

对于 70% 的评测用例,n ≤ 5000 ;

对于所有评测用例,2 ≤ n ≤ 106 。 

比赛公告

第十三届蓝桥杯大赛软件赛省赛 C/C++ 研究生组

C题

质因数个数

D题

选数异或

E题

GCD

F题

爬树的甲壳虫

G题

全排列的价值

H题

扫描游戏

I题

数的拆分

J题

重复的数

注意事项:

1. 对于编程题目,要求选手给出的解答完全符合 GNU C/C++ 标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的 API。

2. 代码中允许使用 STL 类库。

3. main 函数结束必须返回 0。

4. 所有依赖的函数必须明确地在源文件中 #include

5. 提交时,注意选择使用C或C++语言。


比赛结束也可以提交,见题集2022年第十三届蓝桥杯大赛软件类省赛C/C++研究生组真题