• c++数字三角形


    数字三角形

    Description

    Input

    第一行一个整数N(<=1000),表示三角形总共有几行 第二至第N+1行,给出这个数字三角形

    Output

    一个整数,表示一路上所有数的最大和,结果不会超过int64

    Sample Input

    4
    1
    3 2
    4 10 1
    4 3 2 20
    

    Sample Output

    24
    

    Source

    #include <iostream>
    #include <stdio.h>
    #include <string.h>
    using namespace std;
    long long f[1001][1001], a[1001][1001];
    int n;
    int main() {
        scanf("%d", &n);
        for (int i = 1;i <= n;i ++) {
            for (int j = 1;j <= i;j ++) {
                scanf("%lld", &a[i][j]);//把整个三角形转换为数组
            }
        }
        memset(f, 0, sizeof(f));//memeset初始化
        for (int i = 1;i <= n;i ++) {
            for (int j = 1;j <= i;j ++) {
                if (f[i - 1][j] > f[i - 1][j - 1]) {//比较上一行左边和右边的数,哪个大哪个就加上现在这个数赋值个现在这个数的dp[]
                    f[i][j] = f[i - 1][j] + a[i][j];
                }
                else {
                    f[i][j] = f[i - 1][j - 1] + a[i][j];
                }
            }
        }
        long long ans = 0;   
        for (int i = 1; i <= n; i ++) {//ans就是最后一行最大的dp[](找出最后一行最大的dp[])
            if (ans < f[n][i]) {
                ans = f[n][i];
            }
        }                  
        cout << ans << endl;
        system("pause");
        return 0;
    }
    /*
        long long ans = 0;                  /*比较上面左
        for (int i = 1; i <= n; i ++) {       边和上面右边的数
            if (ans < f[n][i]) {              ,哪个大哪个就加上现
                ans = f[n][i];                在这个数赋值个现
            }                                 在这个数的dp[]
        }                                   /*
    */
    

  • 相关阅读:
    p5js弹钢琴
    javascript——拖拽(完整兼容代码)
    js正则表达式和replace
    CSS最常用和实用的技巧
    优化MYSQL数据库的方法
    css默认样式
    javascript之document对象
    常见JS(JavaScript)冲突解决方法
    String对象中的正则表达式
    css去掉a标签点击后的虚线框
  • 原文地址:https://www.cnblogs.com/LJA001162/p/11483221.html
Copyright © 2020-2023  润新知