zstu 4054 阅读理解2

这题是在新生赛上做到的,题意很明显是让你递归改递推的,可惜笔者改出来后,忘记了,除模了,郁闷呢,搞了半天没A,后来才发现的。

这里是郁闷的AC代码:

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
const int mod=1000000007;
__int64 a[2005][2005];
int main(void)
{
	int n;
	memset(a,0,sizeof(a));
	a[1][1]=1;
	for(int i=2;i<=2000;i++)
	{
		int j;
		for(j=1;j<i;j++)
		{
			a[j][i]=a[j][i-1]*j+a[j-1][i-1];
			a[j][i]=a[j][i]%mod;
		}
		a[i][j]=1;
	}
	while(scanf("%d",&n)!=EOF)
	{
	
	__int64 sum=0;
	for(int i=1;i<n;i++){
		sum+=a[i][n];
		sum%=mod;
	}
	sum++;
	printf("%I64d\n",sum%mod);
	}
}


 

你可能感兴趣的:(zstu 4054 阅读理解2)