zoukankan      html  css  js  c++  java
  • 51Nod-1002-数塔取数问题

    这里写图片描述

    这道题很明显会想到直接dp,但是在此之前我并不知道如果dp会不会超时,因此网上查了一下,居然搜到了大佬千千特别简单的思路戳这里

    思路是逆序向上,这样的确可以减少很多时间复杂度。
    两相对比,从上往下之所以时间复杂度不能降低是因为不能剪枝,必须遍历完整棵树才能知道最大值是多少。而从下往上的话每一层可以少一个数。

    具体思路没太多好说的,代码不长,看完就懂。

    #include<bits/stdc++.h>
    using namespace std;
    #define LL long long
    #define MAX_LEN 50001
    
    int main()
    {
        int n;
        cin>>n;
        int a[500][500];
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<=i;j++)
            {
                cin>>a[i][j];
            }
        }
    
        for(int i=n-2;i>=0;i--)
        {
            for(int j=0;j<=i;j++)
            {
                a[i][j]+=max(a[i+1][j],a[i+1][j+1]);
            }
        }
        cout<<a[0][0]<<endl;
    
    }
    
    
    
  • 相关阅读:
    String API
    正则表达式语法
    正则表达式定义与创建
    jQuery——子元素筛选器
    基本筛选器
    内置对象和包装类型
    栈和队列
    web前端css实现六边形效果
    jquery选择器
    AE导出mov
  • 原文地址:https://www.cnblogs.com/yinyoupoet/p/13287540.html
Copyright © 2011-2022 走看看