解题思路:对于每一对恰好前后颠倒的排列(比如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 人评分