Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33662 | 22fhq | 【S】set | C++ | 通过 | 100 | 19 MS | 55776 KB | 805 | 2024-10-18 13:35:52 |
#include<bits/stdc++.h> using namespace std; #define int long long int n; const int mod=998244353; int dp[205][40005]; int qp(int a,int b){ int res=1; while(b){ if(b&1)res*=a; a*=a; b>>=1; a%=mod; res%=mod; } return res; } signed main(){ //freopen("set.in","r",stdin); //freopen("set.out","w",stdout); cin>>n; dp[0][0]=1; for(int i=1;i<=n;i++){ for(int j=0;j<=n*(n+1)/2;j++){ if(j>=i) dp[i][j]+=dp[i-1][j-i]; dp[i][j]+=dp[i-1][j]; dp[i][j]%=mod-1; } } int ans=1; for(int i=1;i<=n*(n+1)/2;i++){ // cout<<dp[n][i]<<" "; ans*=qp(i,dp[n][i]); ans%=mod; } cout<<ans<<endl; return 0; }