0
点赞
收藏
分享

微信扫一扫

13届蓝桥杯PythonA组G题全排列价值(评测用例全过)

霸姨 2022-04-14 阅读 59
算法

【问题描述】
对于一个排列 A = (a 1 ,a 2 ,··· ,a n ),定义价值 c i 为 a 1 至 a i−1 中小于 a i 的数
的个数,即 b i = |{a j |j < i,a j < a i }|。定义 A 的价值为
∑ n
i=1 c i 。
给定 n,求 1 至 n 的全排列中所有排列的价值之和。
【输入格式】
输入一行包含一个整数 n 。
【输出格式】
输出一行包含一个整数表示答案,由于所有排列的价值之和可能很大,请
输出这个数除以 998244353 的余数。
【样例输入 1】
3
【样例输出 1】
9
【样例输入 2】
2022
【样例输出 2】
593300958

md=998244353
n=int(input())
res=1
i=1
while i<=n:
    res*=i
    res=res%md
    i+=1
k=0.5
t=0.5
for i in range(2,n):
    k+=0.5
    t+=k
print(int(t*res%md))

用暴力法找规律,推公式。时间复杂度O(n)


举报

相关推荐

0 条评论