poj 3167 动态规划

//============================================================================
//
// >     File        :    poj3176.cpp
// >     Author      :    flowertree
// >     Time        :    2015年11月14日
// >     Algorithm   :    简单DP
//
//============================================================================

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

#define MAX 355

int map[MAX][MAX];
int dp[MAX][MAX];

int maxcmp(int a, int b)
{
	return a > b ? a : b;
}

int main()
{
	int n;
	cin >> n;
	memset(map, 0, sizeof(map));
	memset(dp, 0, sizeof(dp));
	for(int i = 1; i <= n; i++)
	{
		for(int j = 1; j <= i; j++)
			cin >> map[i][j];
	}
	for(int i = 1; i <= n; i++)
	{
		dp[n][i] = map[n][i];
	}
	for(int i = n - 1; i >= 1; i--)
		for(int j = 1; j <= i; j++)
		{
			dp[i][j] = map[i][j] + maxcmp(dp[i + 1][j], dp[i + 1][j + 1]);
		}
	cout << dp[1][1] << endl;
	system("pause");
	return 0;
}

你可能感兴趣的:(dp,poj)