Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<cstring>#include<cmath>#include<algorithm>#include<cstdio>using namespace std;int t,dp[101][101][101],ans[101][101],pd[101],mo=1e9+7;void solve(int n){for (int i=0;i<=n;i++)for (int j=0;j<=n;j++)for (int k=0;k<=n;k++) dp[i][j][k]=0;pd[n]=1; dp[0][n][0]=1;for (int i=0;i<n;i++)for (int j=0;j<=n;j++)for (int k=0;k<=n;k++)if (dp[i][j][k]){if (j) dp[i+1][j-1][k]=(dp[i+1][j-1][k]+1ll*j*dp[i][j][k])%mo;if (j&&k) dp[i+1][j-1][k]=(dp[i+1][j-1][k]+1ll*dp[i][j][k]*j*k)%mo;if (j>=2) dp[i+1][j-2][k+2]=(dp[i+1][j-2][k+2]+1ll*dp[i][j][k]*(j-1)*j/2)%mo;if (k>=2) dp[i+1][j][k-2]=(dp[i+1][j][k-2]+1ll*dp[i][j][k]*(k-1)*k/2)%mo;if (j) dp[i+1][j-1][k+1]=(dp[i+1][j-1][k+1]+1ll*j*dp[i][j][k])%mo;if (k) dp[i+1][j][k-1]=(dp[i+1][j][k-1]+1ll*k*dp[i][j][k])%mo;dp[i+1][j][k]=(dp[i+1][j][k]+dp[i][j][k])%mo;}for (int i=1;i<=n;i++)for (int j=0;j<=n;j++)for (int k=0;k<=n;k++) ans[n][i]=(ans[n][i]+dp[i][j][k])%mo;}int main(){scanf("%d",&t);for (;t;t--){