您的位置:首页 > 其它

数字三角形问题

2016-03-19 10:36 232 查看
计算从三角形的顶到底的一条路径,使得该路径经过的数字总和最大

解题思路:自底向上逐层选择相加,动态规划

状态转移方程: t[i][j]=t[i][j]+max(t[i+1][j],t[i+1][j+1]); i=n-2,n-3,n-4.......,0. 0<=j<<i;

#include<iostream>
using namespace std;
int t[100][100];
int main()
{
int i,j,n;
cin>>n;
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
cin>>t[i][j];
}
}
for(i=n-2;i>=0;i--)
{
for(j=0;j<=i;j++)
{
t[i][j]+=max(t[i+1][j],t[i+1][j+1]);
}

}
cout<<t[0][0]<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: