Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33679 | A21μΘ_wjy | 【S】set | C++ | 通过 | 100 | 9 MS | 10260 KB | 732 | 2024-10-18 14:15:49 |
#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; }