您好,欢迎来到宝玛科技网。
搜索
您的当前位置:首页poj3176

poj3176

来源:宝玛科技网

Cow Bowling

Time Limit: 1000MSMemory Limit: 65536K
Total Submissions: 8553Accepted: 5607

Description

The cows don't use actual bowling balls when they go bowling. They each take a number (in the range 0..99), though, and line up in a standard bowling-pin-like triangle like this: 

          7


3 8

8 1 0

2 7 4 4

4 5 2 6 5
Then the other cows traverse the triangle starting from its tip and moving "down" to one of the two diagonally adjacent cows until the "bottom" row is reached. The cow's score is the sum of the numbers of the cows visited along the way. The cow with the highest score wins that frame. 

Given a triangle with N (1 <= N <= 350) rows, determine the highest possible sum achievable.

Input

Line 1: A single integer, N 

Lines 2..N+1: Line i+1 contains i space-separated integers that represent row i of the triangle.

Output

Line 1: The largest sum achievable using the traversal rules

Sample Input

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

Sample Output

30

Hint

Explanation of the sample: 

          7

*
3 8
*
8 1 0
*
2 7 4 4
*
4 5 2 6 5
The highest score is achievable by traversing the cows as shown above.

Source


DP:比较简单的水题
#include <iostream>
#include <cstring>

using namespace std;

const int N=350;
int map[N+1][N+1];
int dp[N+1][N+1];

int main()
{
    int n;
    int rlt;

    while(cin>>n)
    {
        memset(dp,0,sizeof(dp));
        for(int i=1; i<=n; i++)
        {
            for(int j=1; j<=i; j++)
            {
                cin>>map[i][j];
            }
        }
        //DP
        for(int i=1; i<=n; i++)
        {
            for(int j=1; j<=i; j++)
            {
                if(dp[i-1][j]>dp[i-1][j-1])
                {
                    dp[i][j]=map[i][j]+dp[i-1][j];
                }
                else
                {
                    dp[i][j]=map[i][j]+dp[i-1][j-1];
                }
            }
        }
        rlt=dp[n][1];
        for(int i=2; i<=n; i++)
        {
            if(rlt<dp[n][i])
                rlt=dp[n][i];
        }
        cout<<rlt<<endl;
    }

    return 0;
}

转载于:https://www.cnblogs.com/eric-blog/archive/2011/05/25/2056828.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baomayou.com 版权所有 赣ICP备2024042794号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务