您的位置:首页 > 其它

POJ 3176 解题报告

2015-04-07 09:04 309 查看
这道题是简单的动态规划题。和1163一样。

thestoryofsnow3176Accepted1144K63MSC++923B
/*
ID: thestor1
LANG: C++
TASK: poj3176
*/
#include <iostream>
#include <fstream>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <limits>
#include <string>
#include <vector>
#include <list>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <algorithm>
#include <cassert>

using namespace std;

int main()
{
int N;
scanf("%d", &N);
vector<vector<int> > triangle(N, vector<int>(N, 0));
for (int i = 0; i < N; ++i)
{
for (int j = 0; j <= i; ++j)
{
scanf("%d", &triangle[i][j]);
}
}

vector<vector<int> > maxsum(N, vector<int>(N, 0));
for (int i = 0; i < N; ++i)
{
maxsum[N - 1][i] = triangle[N - 1][i];
}

for (int i = N - 2; i >= 0; --i)
{
for (int j = 0; j <= i; ++j)
{
maxsum[i][j] = max(maxsum[i + 1][j], maxsum[i + 1][j + 1]) + triangle[i][j];
}
}

printf("%d\n", maxsum[0][0]);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: