boj 462

dp 

{i,j}=i*{i,j-1}+i*{i-1,j-1}=i*[{i,j-1}+{i-1,j-1}];

#include<iostream>
using namespace std;

long long dp[1005][1005];//dp[i][j]表示i条入线,j条出线

int main()
{
	for(int i=0;i<=1000;i++)
		dp[0][i]=dp[i][0]=0;
	dp[1][1]=1;
	for(int i=1;i<=1000;i++)
	{
		for(int j=1;j<=1000;j++)
		{
			if(i>j)
				dp[i][j]=0;
			else 
				dp[i][j]=((i%12345678)*((dp[i][j-1]+dp[i-1][j-1])%12345678))%12345678;
			dp[1][1]=1;
		}
	}
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int m,n;
		scanf("%d %d",&m,&n);
		printf("%ld\n",dp[m][n]);
	}
	return 0;
}

你可能感兴趣的:(BO)