XDOJ_1183_DP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XDOJ_1183_DP相关的知识,希望对你有一定的参考价值。

http://acm.xidian.edu.cn/problem.php?id=1183

 

划分问题,dp[i][j] = dp[i-1][j-1]+dp[i-j][j]。

 

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define MOD 1000000007
using namespace std;

long long dp[1005][1005] = {0};
int n,m;

int main()
{
    for(int i = 1;i <= 1000;i++)    dp[i][1] = 1;
    for(int i = 2;i <= 1000;i++)
    {
        for(int j = 2;j <= i;j++)    dp[i][j] = (dp[i-1][j-1]+dp[i-j][j])%MOD;
    }
    for(int i = 1;i <= 1000;i++)
    {
        for(int j = 1;j <= 1000;j++)    dp[i][j] = (dp[i][j-1]+dp[i][j])%MOD;
    }
    while(scanf("%d%d",&n,&m) && n && m)    printf("%lld\n",dp[n][m]);
    return 0;
}

 

以上是关于XDOJ_1183_DP的主要内容,如果未能解决你的问题,请参考以下文章

XDOJ_1096_DP

XDOJ_1002_dp

XDOJ_1112_DP

XDOJ_1090_树状DP

XDOJ_1117_状态压缩DP

XDOJ_1070_树状DP