zoukankan      html  css  js  c++  java
  • hdu 2067

    #include<iostream>
    #include<cstdio>
    using namespace std;
    long long    dp[38][38];
    int main()
    {
        for(int i=0;i<=37;i++)
            dp[0][i]=1;
        int n,cas=0;
        while(~scanf("%d",&n)&&n!=-1)
        {
            cas++;
            for(int j=1;j<=n;j++)
                for(int i=1;i<=j;i++)
                    if(i!=j)
                         dp[i][j]=dp[i-1][j]+dp[i][j-1];
                   else
                         dp[i][j]=dp[i-1][j];
            cout<<cas<<" "<<n<<" "<<2*dp[n][n]<<endl;
        }
        return 0;
    }

    一道简单的dp,不过要注意的是因为最后数字很大,所以dp数组要换成long long,,好吧,,承认我第一次也在这个上挂了,以后打比赛的时候

    看到最后结果很大时,要注意换成long long输出,其实这道题目应该也可以卡塔兰,容我先做做

    #include<iostream> #include<cstdio> using namespace std; long long    h[38]; int main() {     h[0]=1;h[1]=1;     for(int i=2;i<=36;i++)         for(int j=0;j<=i-1;j++)             h[i]+=h[j]*h[i-1-j];     int n,cas=1;     while(~scanf("%d",&n)&&n!=-1)         cout<<cas++<<" "<<n<<" "<<2*h[n]<<endl;     return 0; }

    /***做完了,卡塔兰,之所以可以卡塔兰是因为以左下三角形为例,可以把向下走设为入栈,往右走设为出栈,不难看出就是卡塔兰,本题

    尤其要注意的是初始值的设定,当n==1或0时,都只有一种方法到达,故h[1]=h[0]=1

    你说,我们都会幸福的,对吧?
  • 相关阅读:
    每日日报
    HTML相关
    60-Shiro功能扩展(记住我)
    60--Shiro安全框架
    服务器项目部署简单操作
    61--DB项目--修改密码模块设计
    59-SpringAOP --Cache操作(注解)
    58-Spring AOP 异步操作
    58-Spring-AOP事务管理
    Terminal 执行 java 命令
  • 原文地址:https://www.cnblogs.com/smilesundream/p/6642581.html
Copyright © 2011-2022 走看看