小兔的棋盘

递推题,算下三角的可行方案然后乘2.

每一步由上,左的最短可行方案转移过来.最左边只能从上面下来,为1,靠近斜线只能从左边过来.为f[i][i-1]

#include <iostream>
#include "stdio.h"
using namespace std;

int main()
{
    __int64 a[36][36];
    a[1][0] = 1;
    a[0][1] = 0;
    for(int i=1; i<36; i++)
    {
        a[i][0] = 1;
        for(int j=1; j<i; j++)
        {
            a[i][j] = a[i][j-1] + a[i-1][j];
        }
        a[i][i] = a[i][i-1];
    }
    int n,num=1;
    while(cin>>n&&n!=-1)
    {
        printf("%d %d %I64d\n",num, n, 2 * a[n][n]);
        num++;
    }

    return 0;
}

 

 

posted @ 2013-09-19 16:12  Destino74  阅读(93)  评论(0编辑  收藏  举报