⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 数字三角形.txt

📁 ACM资料大集合
💻 TXT
字号:

#include <iostream>
#include <stdio.h>
using namespace std;

#define MAX 10000
int f[10][10];//f[i][j],从顶点到第i行第j列点的最大路径
int thi[10][10];//三角形的点的值
//数字三角形 动态规划
/*
输入:
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

输出:
30
*/
int cal(int num)
{
	int i,j,max;
	f[1][1]=thi[1][1];
	for(i=2;i<=num;i++)
	{
		for(j=1;j<=i;j++)
		{
			if(j==1) f[i][j]=f[i-1][j]+thi[i][j];
			else if(j==i) f[i][j]=f[i-1][j-1]+thi[i][j];
			else 
			{
				if(f[i-1][j-1]>f[i-1][j]) f[i][j]=f[i-1][j-1]+thi[i][j];//从左上角下来
				else f[i][j]=f[i-1][j]+thi[i][j];//从上面下来
			}
		}
	}
	max=0;
	for(j=1;j<=num;j++)
		if(max<f[num][j]) max=f[num][j];
	return max;
}


int main()
{
	int num,i,j;
	cin>>num;
	for(i=1;i<=num;i++)
	{
		for(j=1;j<=i;j++)
			cin>>thi[i][j];
	}
	cout<<cal(num)<<endl;
	return 0;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -