提交时间:2024-10-18 14:15:49
运行 ID: 33679
#include<bits/stdc++.h> #define int long long using namespace std; const int maxn=207; const int mod=998244353; bool ST; int n; int dp[maxn][maxn*maxn]; inline int qpow(int a,int b){ int ans=1; while(b){ if(b&1)ans=ans*a%mod; a=a*a%mod; b>>=1; } return ans; } bool ED; signed main(){ // cerr<<abs((int)(&ED)-(int)(&ST))/1024.0/1024.0<<" MB"<<endl; cin>>n; dp[0][0]=1; for(int i=1;i<=n;i++){ for(int j=0;j<=(i)*(i+1)/2;j++){ dp[i][j]=dp[i-1][j]; if(j>=i)dp[i][j]=(dp[i][j]+dp[i-1][j-i])%(mod-1); } } int ans=1; for(int i=1;i<=(n+1)*n/2;i++)ans=ans*qpow(i,dp[n][i])%mod; cout<<ans<<endl; }