LightOJ 1173 The Vindictive Coach(DP计数)

来源:互联网 发布:mac怎么创建快捷方式 编辑:程序博客网 时间:2024/06/13 08:49

 【题目链接】http://https://cn.vjudge.net/contest/173608#problem/B

  

  说实话这个题我不是很懂,这也是赛后琢磨的,想看详解的童鞋点这里。

 

 【AC代码】

 

#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;typedef long long unsigned ll;const int N=52;ll f[N][N],g[N][N];int m,n;void Init(){    f[1][1]=1;    g[1][1]=1;    for(int i=2;i<=50;++i)        for(int j=1;j<=i;++j)    {        for(int k=j;k<=i-1;++k)            f[i][j]+=g[i-1][k];        for(int k=1;k<j;++k)            g[i][j]+=f[i-1][k];    }    return ;}ll dp(){    ll ans=0;    if(n>1)    {        for(int i=1;i<=n-1;++i)            ans+=f[m-1][i];    }    else    {        if(m<=2) ans=1;        else ans=g[m-1][2];    }    return ans;}int main(){    Init();    int t,cnt=0;    scanf("%d",&t);    while(t--)    {        scanf("%d%d",&m,&n);        printf("Case %d: %llu\n",++cnt,dp());    }    return 0;}

 


原创粉丝点击