蓝桥杯 三行代码解决 “全排列的价值”(2022省赛pythonA组)
Posted BkbK-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝桥杯 三行代码解决 “全排列的价值”(2022省赛pythonA组)相关的知识,希望对你有一定的参考价值。
三行代码解决 “全排列的价值”(2022省赛pythonA组)
置顶代码:
from math import factorial n = int(input()) print(factorial(n) *(n-1)*n//4 % 998244353)
一、试题 G: 全排列的价值
【问题描述】
对于一个排列 A = ( a 1 , a 2 , ⋅ ⋅ ⋅ , a n ) A = (a_1, a_2, · · · , a_n) A=(a1,a2,⋅⋅⋅,an),定义价值 c i c_i ci 为 a 1 a_1 a1 至 a i − 1 a_i−1 ai−1 中小于 a i a_i ai 的数的个数,即 c i = ∣ a j ∣ j < i , a j < a i ∣ c_i = |\\a_j| j < i, a_j < a_i \\| ci=∣aj∣j<i,aj<ai∣。定义 A 的价值为 ∑ i = 1 n c i ∑^n_i=1 c_i ∑i=1nci。给定 n n n,求 1 至 n n n 的全排列中所有排列的价值之和。
【输入格式】
输入一行包含一个整数 n 。
【输出格式】
输出一行包含一个整数表示答案,由于所有排列的价值之和可能很大,请输出这个数除以 998244353 的余数。
【样例】
-
【样例输入 1】
3
-
【样例输出 1】
9
-
【样例输入 2】
2022
-
【样例输出 2】
593300958
【样例说明】
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。
二、Python 代码
from math import factorial
n = int(input())
print(factorial(n) *(n-1)*n//4 % 998244353)
三、题解
【未完待续…】
以上是关于蓝桥杯 三行代码解决 “全排列的价值”(2022省赛pythonA组)的主要内容,如果未能解决你的问题,请参考以下文章
蓝桥杯 三行代码解决 “全排列的价值”(2022省赛pythonA组)
《蓝桥杯真题》:2022年单片机省赛(第十三 / 13届第一场)
《蓝桥杯真题》:2022年单片机省赛(第十三 / 13届第一场)