Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
33898 LYLAKIOI 【S】T3 C++ 运行超时 90 1000 MS 4224 KB 1532 2024-10-30 14:29:15

Tests(9/10):


#include<bits/stdc++.h> #define up(i,l,r) for(int i=(l);i<=(r);++i) #define down(i,l,r) for(int i=(l);i>=(r);--i) #define pi pair<int,int> #define p1 first #define p2 second #define m_p make_pair #define p_b push_back using namespace std; typedef long long ll; const int mod=998244353; inline ll read(){ ll x=0;short t=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')t=-1;ch=getchar();} while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar(); return x*t; } int n,P,dp[505][505],g[505][505],jc[505],jc_inv[505]; int qp(int a,int b){ int res=1; while(b){ if(b&1)res=res*1ll*a%mod; a=a*1ll*a%mod;b>>=1; }return res; } int C(int n,int m){return jc[m]*1ll*jc_inv[m-n]%mod*1ll*jc_inv[n]%mod;} void slv(){ n=read();int x=read(),y=read();P=x*1ll*qp(y,mod-2)%mod; jc[0]=jc_inv[0]=1;up(i,1,500)jc[i]=jc[i-1]*1ll*i%mod,jc_inv[i]=qp(jc[i],mod-2); up(i,0,n)dp[0][i]=g[0][i]=1; up(i,1,n){ up(x,0,n)up(j,0,i-1){ int M=g[i-1-j][x]*1ll*C(j,i-1)%mod; (dp[i][x]+=dp[j][x+1]%mod*1ll*M%mod*1ll*P%mod)%=mod; if(x)(dp[i][x]+=dp[j][x-1]%mod*1ll*M%mod*1ll*(mod+1-P)%mod)%=mod; }up(x,0,n)up(j,0,i)(g[i][x]+=dp[j][x]*1ll*dp[i-j][x]%mod*1ll*C(j,i)%mod)%=mod; }int S=1;up(i,1,n)S=S*1ll*(2*i-1)%mod; cout<<dp[n][0]*1ll*qp(S,mod-2)%mod; } int main(){ //freopen("bracket.in","r",stdin); //freopen("bracket.out","w",stdout); slv(); fclose(stdin); fclose(stdout); return 0; }


测评信息: