烦人程度

题目描述

wdyhy睡不着觉就会不由自主的去数排列,数着数着就睡着了,但是有些排列非常烦人,导致wdyhy睡眠质量变差.一个排列p的烦人程度指的是有多少对(i,j)其中i<j并且p[i]>p[j].
现在wdyhy想知道对于n的所有排列烦人程度之和是多少.

 

 

输入

输入的第一行是一个整数n;

 

输出

输出一个数,表示n的所有排列烦人程度之和.
答案对998244353取模.

 

 

样例输入

复制样例数据

3

样例输出

9

 

提示

(1,2,3)烦人程度为0
(1,3,2)烦人程度为1
(2,1,3)烦人程度为1
(2,3,1)烦人程度为2
(3,1,2)烦人程度为2
(3,2,1)烦人程度为3
对于20%的数据,n<=10;
对于40%的数据,n<=20;
对于60%的数据,n<=233;
对于80%的数据,n<=2000;
对于100%的数据,n<=1000000;

n!种排列;对于任意一个排列的两个数要么正序要么逆序。所以答案是(Cn2)*n!/2;(n!种排列,两个数之间的关系两种,所以除以二)

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
#define mod 998244353
typedef long long ll;
ll fun(int n){
    ll ans=n*(n-1)/2;
    ans=ans%mod;
    for(int i=n;i>2;i--){
        ans=ans*i;
        ans=ans%mod;
    }
    return ans;
}
int main()
{
    int n;
    cin>>n;
    ll ans=fun(n);
    cout<<ans<<endl;
    return 0;
}

 

posted on 2019-03-25 21:55  湫叶  阅读(113)  评论(0编辑  收藏  举报

导航