1 #include <cstdio> 2 #include <cstring> 3 #define ll long long 4 using namespace std; 5 const ll N=200,mo=258280327; 6 int n,Q; 7 ll x,y,k,sum,ny[N],f[N][N],r,p; 8 ll ksm(ll a,ll b){ for (r=1;b;b>>=1,a=a*a%mo) if (b&1) r=r*a%mo; return r; } 9 int main() 10 { 11 scanf("%d",&Q); 12 while (Q--) 13 { 14 scanf("%d%lld%lld",&n,&x,&y),memset(f,0,sizeof(f)),f[1][0]=1,k=ksm(y,mo-2),p=ksm(n,mo-2),ny[0]=1; 15 for (int i=1;i<=n;i++) ny[i]=ny[i-1]*(y-x)%mo*k%mo; 16 for (int i=1;i<=n-1;i++) 17 for (int j=0;j<=n-1;j++) 18 if (f[i][j]) f[i+1][j+1]=(f[i+1][j+1]+f[i][j]*ny[j+1]%mo)%mo,f[i+1][j]=(f[i+1][j]+f[i][j]*(1-ny[j]+mo)%mo)%mo; 19 for (int j=0;j<=n-1;j++,sum=0) 20 { 21 for (int i=1;i<=n;i++) (sum+=f[i][j])%=mo; 22 printf("%lld ",sum*p%mo); 23 } 24 printf("\n"); 25 } 26 }
原文:https://www.cnblogs.com/Comfortable/p/10316742.html