zoukankan      html  css  js  c++  java
  • HDU 4165 pills

    这是HDU热身赛的其中一水题,当时没做出来……好吧!

    可以有两种做法:

    ①记忆化搜索

    View Code
    #include <stdio.h>

    __int64 f[32][32];

    __int64 fun(int x,int y)
    {
    __int64 ans=0;

    if(f[x][y]) return f[x][y];

    ans+=fun(x-1,y+1);
    if(y) ans+=fun(x,y-1);

    return f[x][y]=ans;
    }

    int main()
    {
    int i,n;

    for(i=0;i<=30;i++) f[1][i]=i+1;

    while(scanf("%d",&n) && n)
    {
    printf("%I64d\n",fun(n,0));
    }

    return 0;
    }


    ②DP

    View Code
    #include <stdio.h>

    __int64 dp[31][30];


    int main()
    {

    int i,j,n;

    for(i=0;i<30;i++) dp[1][i]=i+1;

    for(i=2;i<=30;i++)
    {
    dp[i][0]=dp[i-1][1];
    for(j=1;j<=30-i;j++)
    {
    dp[i][j]=dp[i-1][j+1]+dp[i][j-1]; /*+ (j?dp[i][j-1]:0)*/
    }
    }

    while(scanf("%d",&n) && n)
    {
    printf("%I64d\n",dp[n][0]);
    }

    return 0;
    }


    其实又听别人说是卡特兰数,这么说哪有第三种做法。。表示还不知道卡特兰数。。。

  • 相关阅读:
    EXCEL自动导出HTML
    亡灵序曲超清
    支持国产动画-唐伯卿和曾小兰
    中国表情
    logging 日志
    datetime库运用
    hashlib 加密
    os2
    python json数据处理
    python操作redis
  • 原文地址:https://www.cnblogs.com/fornever/p/2381434.html
Copyright © 2011-2022 走看看