解题思路:对于每一对恰好前后颠倒的排列(比如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 人评分
Hello, world! (C语言代码)浏览:995 |
C二级辅导-等差数列 (C语言代码)浏览:828 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1550 |
C语言程序设计教程(第三版)课后习题5.7 (C++代码)浏览:879 |
Pascal三角 (C语言代码)格式错误浏览:551 |
printf基础练习2 (C语言代码)浏览:826 |
WU-字符串比较 (C++代码)浏览:824 |
WU-链表数据求和操作 (C++代码)浏览:1382 |
【金明的预算方案】 (C++代码)浏览:997 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:583 |