POJ 3176 DP(简单数塔)

原创 2015年11月21日 16:21:47

Cow Bowling
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 15863 Accepted: 10567

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

题意:
数塔从上到下,每下一层只能选和上一个位置左右相邻的位置,问怎么走时经过的路径权重相加最大。
解法:
比较经典的dp了,之前在hdu做了一次。这次做做要是求速度,应该是几分钟就敲完AC了。

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#define F(i,a,b) for(int i = a;i<=b;i++)
#define FI(i,a,b) for(int i = a;i>=b;i--)

int dp[1000];
int G[1000][1000];

using namespace std;

int main()
{
//    freopen("data.in","r",stdin);
    int n;
    while(scanf("%d",&n)!=EOF){
        F(i,1,n)
            F(j,1,i)
                scanf("%d",&G[i][j]);
        F(i,1,n)
            dp[i] = G[n][i];

        FI(i,n-1,1)
            F(j,1,i)
                dp[j] = G[i][j] + max(dp[j],dp[j+1]);
        printf("%d\n",dp[1]);
    }
    return 0;
}
版权声明:博客迁移到 yaokun.wiki

POJ 3176-Cow Bowling/POJ 1163-The Triangle(简单DP-数塔)

Cow Bowling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18487   A...
  • MIKASA3
  • MIKASA3
  • 2017年02月24日 17:05
  • 185

POJ 3176 Cow Bowling 保龄球 数塔问题 DP

题目链接:POJ 3176 Cow Bowling Cow Bowling Time Limit: 1000MS   Memory Limit: 655...

POJ 3176(Cow Bowling )(就是简单的数塔,动态规划)

Cow Bowling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14206   A...

POJ 3176 (简单dp)

http://poj.org/problem?id=3176 题意:输入n层数字三角形,求从第一层到最后一层最大权值和。 其实用递归很简单的解决,但是数据范围是350层,递归确...

POJ 3176 Cow Bowling (简单DP)

Cow Bowling http://poj.org/problem?id=3176 Time Limit: 1000MS Memory Limit: 65536K Descripti...

POJ 3176-Cow Bowling(DP||记忆化搜索)

Cow Bowling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14210   A...

[dp]POJ 3176 Cow Bowling解题报告

题目: Cow Bowling Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16077 Acce...

poj 3176 (dp 金字塔)

Cow Bowling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17271   A...

POJ3176-Cow Bowling(dp)

大致题意: 输入一个n层的三角形,第i层有i个数,求从第1层到第n层的所有路线中,权值之和最大的路线。 规定:第i层的某个数只能连线走到第i+1层中与它位置相邻的两个数中的一个。解题方法: 用二...

POJ-3176 Cow Bowling【基础DP】

Cow Bowling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17284   A...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 3176 DP(简单数塔)
举报原因:
原因补充:

(最多只允许输入30个字)