【数字三角形】

题目

代码

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

const int N = 510;
int f[N][N];
int a[N][N];
int main()
{
    int n;
    cin >> n;
    for(int i = 1; i <= n; i++)
    {
        for(int j = 1; j <= i; j++)
        {
            cin >> a[i][j];
            if(i == 1 && j == 1) f[i][j] = a[i][j];
            else f[i][j] = INT_MIN;
            if(j-1 >= 1) f[i][j] = max(f[i][j], f[i-1][j-1] + a[i][j]);
            if(j <= i-1) f[i][j] = max(f[i][j], f[i-1][j] + a[i][j]);
        }
    }

    int res = INT_MIN;
    for(int i = 1; i <= n; i++)
    {
        res = max(res, f[n][i]);
    }
    cout << res;
    return 0;
}
相关推荐
不染尘.1 分钟前
双指针算法
算法
2501_901147835 分钟前
题解:有效的正方形
算法·面试·职场和发展·求职招聘
你撅嘴真丑5 分钟前
习题与总结
算法
亲爱的非洲野猪27 分钟前
动态规划进阶:状态机DP深度解析
算法·动态规划
dragoooon3439 分钟前
[hot100 NO.91~95]
算法
windows_61 小时前
【无标题】
算法
jojo_zjx1 小时前
GESP 24年12月2级 数位和
c++
自由的好好干活1 小时前
PCI9x5x驱动移植支持PCI9054在win7下使用3
c++·驱动开发
踢足球09291 小时前
寒假打卡:2026-01-24
数据结构·算法
亲爱的非洲野猪1 小时前
动态规划进阶:多维DP深度解析
算法·动态规划