zoukankan      html  css  js  c++  java
  • poj 1163 The Triangle 动态规划

    递归

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    int n,d[124][124],ans[124][124];
    
    int maxans(int i,int j)
    {
        if(ans[i][j]!=-1)
            return ans[i][j];
        if(i==n) return d[i][j];
        int x=maxans(i+1,j);
        int y=maxans(i+1,j+1);
        ans[i][j]=max(x,y)+d[i][j];
        return ans[i][j];
    }
    
    int main()
    {
        int i,j;
        while(~scanf("%d",&n))
        {
            memset(d,0,sizeof(d));
            for(i=1;i<=n;i++)
                for(j=1;j<=i;j++)
            {
                scanf("%d",&d[i][j]);
                ans[i][j]=-1;
            }
            maxans(1,1);
            printf("%d
    ",ans[1][1]);
        }
        return 0;
    }
    

    递推

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    int n,d[124][124],ans[124][124];
    
    int main()
    {
        int i,j;
        while(~scanf("%d",&n))
        {
            memset(d,0,sizeof(d));
            memset(ans,0,sizeof(ans));
            for(i=1;i<=n;i++)
                for(j=1;j<=i;j++)
                    scanf("%d",&d[i][j]);
            for(j=1;j<=n;j++) ans[n][j]=d[n][j];
            for(i=n-1;i>=1;i--)
            {
                for(j=1;j<=i;j++)
                {
                    ans[i][j]=max(ans[i+1][j],ans[i+1][j+1])+d[i][j];
                }
            }
            printf("%d
    ",ans[1][1]);
        }
        return 0;
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/

  • 相关阅读:
    Linux基礎命令
    Linux_文件系統結構
    Linux_目錄結構與操作_基本命令
    JS简单打字小游戏demo
    开发板通过路由器访问外网
    VIM基本操作命令表
    破解source insight4.0
    进程控制
    静态库与动态库的制作和使用
    STM32建工程模板
  • 原文地址:https://www.cnblogs.com/xryz/p/4847767.html
Copyright © 2011-2022 走看看