蓝桥杯 三行代码解决 “全排列的价值”(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 ai1 中小于 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=ajj<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届第一场)

蓝桥杯 2022 省 B

《蓝桥杯真题》:2022单片机省赛第二场(第十三 / 13届第二场)

《蓝桥杯真题》:2022单片机省赛第二场(第十三 / 13届第二场)