#include<bits/stdc++.h>
#define LL long long
#define clr(x,i) memset(x,i,sizeof(x))
using namespace std;
const int N=10005,KK=12;
int n,K,p,f[N*KK][KK],ans;
void solve()
{
scanf("%d%d%d",&n,&K,&p);
f[0][0]=1;
for(int i=1; i<=n*K; i++){
for(int j=1; j<=i&&j<=K; j++)
{
f[i][j]=(f[i-j][j]+f[i-j][j-1])%p;
if(i>n)
f[i][j]=(f[i][j]-f[i-(n+1)][j-1]+p)%p;
}
}
ans=0;
for(int i=0;i<=K;i++)
for(int j=0;j<=n*K;j++){
ans+=f[j][i]*f[j][K-i]%p;ans%=p;
if(i<K)
ans+=f[j][i]*f[j][K-i-1],ans%=p;
}
}
int main()
{
int cas;scanf("%d",&cas);
while(cas--)
{
solve();
printf("%d\n",ans);
}
return 0;
}
BZOJ3612 [Heoi2014]平衡 遞推 整數劃分
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.