1.5 Number Triangles

这题入门DP..因为以前写过了..所以搞起来很快

但是又卡在某些细节花了很些时间 

此次教训,再也不把max,min写成宏,比如这次很多地方需要把(max())像这样括起来..写成函数方便多!

提交的时候又忘记delete fropen的注释了.....悲剧

/*
id:y7276571
lang:c++
task:numtri
*/
/*
dp:f[i][j]=max{f[i+1][j], f[i+1][j+1]}(i >= 0 && j <= i)
*/
#include<iostream>
#include<cstdio>
#define max(x,y) x > y ? x : y
using namespace std;
const int maxn = 1000+1;
int main()
{
freopen("numtri.in", "r", stdin);
freopen("numtri.out", "w", stdout);
int n, numtri[maxn][maxn];
long maxsum = 0, f[maxn][maxn];
cin >> n;
for(int i = 0; i < n; i++)
for(int j = 0; j <= i; j++)
cin >> numtri[i][j];
for(int i = 0; i < n; i++) f[n-1][i] = numtri[n-1][i];
for(int i = n-2; i >= 0; i--)
for(int j = 0; j <= i; j++)
{
f[i][j] = (max(f[i+1][j],f[i+1][j+1]))+numtri[i][j];
if(maxsum < f[i][j]) maxsum = f[i][j];
// cout << maxsum << endl;
}
cout << maxsum << endl;
/*
for(int i = 0; i < n-1; i++)
{
for(int j = 0; j <= i; j++)
cout << f[i][j] << " ";
cout << endl;
}
*/
return 0;
}

原文链接: https://www.cnblogs.com/shixuehunk/archive/2012/01/27/2330085.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    1.5 Number Triangles

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/40626

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 下午5:24
下一篇 2023年2月8日 下午5:25

相关推荐