做题总结——数字三角形

2021-01-26 14:48:47 浏览数 (1)

做题总结——数字三角形

题目

题意分析:

这道题目就是寻找从上至下数值最大的一条路线(与“杨辉三角”十分类似)

做题思路:

这道题目利用贪心算法肯定是错误的!

先介绍一种解法。这道题目可以利用“杨辉三角”的思路,根据一个上面的元素与下面两个元素的递推公式(在动态规划里面称作状态转移方程),从下至上地解决此问题(详细思路以后再补)

代码实现

代码语言:javascript复制
#include<bits/stdc  .h>
using namespace std;
int main()
{
	int n,a[1010][1010],i,j;      //这里地二维数组空间一定要开的足够大
	cin>>n;
	for(i=1;i<=n;i  )
	{
		for(j=1;j<=i;j  )
		{
			cin>>a[i][j];
		}
	}
	/*if(n==1)            
	{
		cout<<a[1][1]<<endl;
		return 0;
	}*/
	for(i=n-1;i>=1;i--)              //按照递推公式(状态转移方程)进行实现
	{
		for(j=1;j<=i;j  )
		{
			a[i][j] =max(a[i 1][j],a[i 1][j 1]);
		}
	}
	cout<<a[1][1]<<endl;
}

0 人点赞