已退役


私信TA

用户名:15893197790

访问量:14398

签 名:

努力学习,积极生活。

等  级
排  名 389
经  验 5119
参赛次数 0
文章发表 43
年  龄 0
在职情况 学生
学  校 南京大学
专  业 计算机科学与技术

  自我简介:

已退役。研究生方向为AI+软件工程,欢迎学术交流!

解题思路:对于每一对恰好前后颠倒的排列(比如1 3 2 4与4 2 3 1),其价值和为n*(n-1)/2,可以自己尝试一下,会发现很好证明。一共有n!个排列,也就是n!/2对排列,所以答案就是n*(n-1)/2*n!/2对998244353取模
注意事项:无

参考代码:

#include

using namespace std;

#define mod 998244353LL

typedef long long ll;

ll n;

ll ans=1;

int main(){

    scanf("%lld",&n);

    ans*=n*(n-1)/2;

    ans%=mod;

    for(int i=3;i<=n;i++){

        ans*=i;

        ans%=mod;

    }

    printf("%lld",ans);

    //system("pause");

    return 0;

}


 

0.0分

14 人评分

  评论区

6
2023-04-07 20:54:24
  • «
  • 1
  • »