zoukankan      html  css  js  c++  java
  • 动态规划_数字三角形

    问题描述:在下面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大,路径上的每一步都只能往左下或右下走。只需要求出这个最大和即可,不必给出具体路径。

    输入数据的要求:三角形的行数大于1小于等于100,数字为0——99.

    输入格式:

    5 //三角形的行数,下面是三角形

    7

    3 8

    8 1 0

    2 7 4 4

    4 5 2 6 5

    #include <iostream>
    using namespace std;
    
    const int N = 101;
    int a[N][N], n;
    
    int main()
    {
    	cin >> n;
    	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++)
    		{
    			int x = a[i+1][j];
    			if (x < a[i+1][j+1])
    				x = a[i+1][j+1];
    			a[i][j] = a[i][j] + x;
    		}
    	}
    	cout << a[0][0]<< endl;
    	return 0;
    }


  • 相关阅读:
    Python Day7(相关补充)
    Python Day7
    Python Day6
    Python Day5
    Python Day4
    Python Day3
    Python Day2
    Python Day1
    复杂装饰器原理分析
    Unity 坐标
  • 原文地址:https://www.cnblogs.com/Tovi/p/6194872.html
Copyright © 2011-2022 走看看