POJ 1163 The Triangle DP题解

Posted yxysuanfa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 1163 The Triangle DP题解相关的知识,希望对你有一定的参考价值。

寻找路径,动态规划法题解。

本题和Leetcode的triangle题目几乎相同一样的,本题要求的是找到最大路径和。

逆向思维。从底往上查找起就能够了。

由于从上往下能够扩展到非常多路径。而从下往上个点的路径是由两条缩减到一条。

这样就能够非常easy记录最大路径了。

#include <stdio.h>
const short MAX_ROW = 101;
short triangle[MAX_ROW][MAX_ROW];
short table[MAX_ROW];
short row;
inline short max(short a, short b) { return a > b ? a : b; }

short getMaxSum()
{
	for (short i = 0; i < row; i++) table[i] = triangle[row-1][i];
	for (row-=2; row >= 0; row--)
	{
		for (short i = 0; i <= row; i++)
		{
			table[i] = triangle[row][i] + max(table[i], table[i+1]);
		}
	}
	return table[0];
}

int main()
{
	while (~scanf("%d", &row))
	{
		for (short i = 0; i < row; i++)
		{
			for (short j = 0; j <= i; j++)
			{
				scanf("%d", &triangle[i][j]);
			}
		}
		printf("%d\n", getMaxSum());
	}
	return 0;
}



以上是关于POJ 1163 The Triangle DP题解的主要内容,如果未能解决你的问题,请参考以下文章

POJ 1163&amp;&amp; 3176 The Triangle(DP)

POJ-1163-The Triangle

poj 1163 The Triangle

poj-1163-The Triangle

POJ 1163:The Triangle

POJ-1163 The Triangle