poj 3176 Cow Bowling 简单DP

题目链接:http://poj.org/problem?id=3176

#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <stack>
#include <set>
#include <queue>
#include <vector>

using namespace std;

const int maxn = 400;
int dp[maxn][maxn];
int a[maxn][maxn];

int main()
{
    //freopen("in.txt", "r", stdin);

    int n;

    scanf("%d", &n);

    for(int i = 1; i <= n; i++)
    {
        for(int j = 1; j <= i; j++)
        {
            scanf("%d", &a[i][j]);
        }
    }

    dp[1][1] = a[1][1];
    for(int i = 1; i <= n; i++)
    {
        for(int j = 1; j <= i; j++)
        {
            dp[i][j] = max(dp[i-1][j-1], dp[i-1][j]) + a[i][j];
        }
    }

    int ans = 0;
    for(int i = 1; i <= n; i++)
        ans = max(ans, dp[n][i]);

    printf("%d
", ans);

    return 0;
}
原文地址:https://www.cnblogs.com/dishu/p/4292767.html