uva 10910

简单dp

/************************************************************************* 
    > Author: xlc2845       > Mail: xlc2845@gmail.com 
    > Created Time: 2013年11月05日 星期二 20时05分30秒 
 ************************************************************************/  
  
#include <iostream>  
#include <cstdio>  
#include <cmath>  
#include <cstring>  
#include <algorithm>
#include <queue>  
#include <set>  
#include <cstdlib> 

using namespace std;
int N,T,P,dp[100][100];
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d%d", &N, &T, &P);
        T -= N*P;
        memset(dp, 0, sizeof(dp));
        for(int i = 0; i <= N; i++) dp[i][0] = 1;
        for(int i = 1; i <= N; i++)
            for(int j = 1; j <= T; j++)
                for(int k = 0; k <= j; k++)
                    dp[i][j] += dp[i-1][k];
        printf("%d\n",dp[N][T]);
    }
    return 0;
}



posted @ 2013-11-05 20:24  xlc2845  阅读(120)  评论(0)    收藏  举报