USACO Section 2.3 奶牛家谱 Cow Pedigrees

OJ:http://www.luogu.org/problem/show?pid=1472

#include<iostream>
using namespace std;
const int MOD=9901;
const int maxn=200+5;
const int maxk=100+5;
int dp[maxn][maxk];
int v[maxn][maxk];
int N,K;
void init(){
	for(int i=0;i<maxn;i++) for(int j=0;j<maxk;j++) v[i][j]=0;
}
int Search(int n,int s){
	if(v[n][s]) return dp[n][s];
	v[n][s]=1;
	if(n==1) return dp[n][s]=1;
	if(s==1) return dp[n][s]=0;
	int ans=0;
	for(int i=1;i<n-1;i++){
		ans+=Search(i,s-1)*Search(n-i-1,s-1);
		ans%=MOD;
	}
	return dp[n][s]=ans;
}
int main()
{
	init();
	cin>>N>>K;
	cout<<(Search(N,K)-Search(N,K-1)+MOD)%MOD;
	return 0;
}

  

上一篇:使用mongo-java-driver-3.0.2连接MongoDB数据库


下一篇:从零开始学C++之虚继承和虚函数对C++对象内存模型造成的影响