您的位置:首页 > 其它

USACO 2.3.2 Cow Pedigrees

2015-10-02 12:42 267 查看
DP问题 注意状态定义以及转移方式

#include <iostream>
#include <fstream>
#include <string>
#define MOD 9901
//#define LOCAL

using namespace std;

#ifdef LOCAL
ofstream fout ("out.txt");
ifstream fin ("in.txt");
#else
ofstream fout ("nocows.out");
ifstream fin ("nocows.in");
#endif

int dp[220][110];
int sum[220][110];

int main()
{
int num;
int depth;
fin>>num>>depth;
dp[0][0] = 1;
for (int i = 1; i <= depth; ++i)
{
for (int j = 1; j <= num; ++j)
{
for (int k = 0; k < j; ++k)
{
dp[j][i] = (dp[j][i] + (dp[k][i-1]*sum[j-k-1][i-1])*2)%MOD;
dp[j][i] = (dp[j][i] + dp[k][i-1]*dp[j-k-1][i-1])%MOD;
}

for (int l = 0; l <= i-2; ++l)
{
sum[j][i-1] = (sum[j][i-1]+dp[j][l])%MOD;
}
}
}
fout<<dp[num][depth]<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: