poj 3176 Cow Bowling(dp基础)

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

USACO 2005 December Bronze

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 #define N 356
 6 int mp[N][N];
 7 int dp[N][N];
 8 int main()
 9 {
10     int n;
11     while(scanf("%d",&n)==1){
12         memset(dp,0,sizeof(dp));
13         for(int i=1;i<=n;i++){
14             for(int j=1;j<=i;j++){
15                 scanf("%d",&mp[i][j]);
16             }
17         }
18         dp[1][1]=mp[1][1];
19         for(int i=2;i<=n;i++){
20             for(int j=1;j<=i;j++){
21                 dp[i][j]=max(dp[i-1][j-1]+mp[i][j],dp[i-1][j]+mp[i][j]);
22             }
23         }
24         int maxn=-1;
25         for(int i=1;i<=n;i++){
26             maxn=max(maxn,dp[n][i]);
27         }
28         printf("%d\n",maxn);
29     }
30     return 0;
31 }

时间: 2024-10-09 20:07:13

poj 3176 Cow Bowling(dp基础)的相关文章

poj 3176 Cow Bowling(dp)

递推式dp[i][j]=max( dp[i-1][j] , dp[i-1][j-1] )+a[i][j]; ①第一次做数塔,不会输入.数塔的输入 1 for(int i=1;i <= n;i++) 2 { 3 for(int j=1;j <= i;j++) 4 { 5 scanf("%d",&a[i][j]); 6 } 7 } 1 #include <iostream> 2 #include <cstring> 3 #include <

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

题目链接:POJ 3176 Cow Bowling Cow Bowling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14044   Accepted: 9310 Description The cows don't use actual bowling balls when they go bowling. They each take a number (in the range 0..99), though,

poj 1163 The Triangle &amp;poj 3167 Cow Bowling (dp)

链接:poj 1163 题意:输入一个n层的三角形,第i层有i个数,求从第1层到第n层的所有路线中,权值之和最大的路线. 规定:第i层的某个数只能连线走到第i+1层中与它位置相邻的两个数中的一个. 状态方程:f[i][j]=max(f[i-1][j-1],f[i-1][j])+a[i][j]; 1163代码: #include<stdio.h> #include<string.h> int a[105][105],f[105][105]; int max(int a,int b)

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> #i

poj 3176 Cow Bowling

题目链接:http://poj.org/problem?id=3176 思路: 基本的DP题目:将每个节点视为一个状态,记为B[i][j], 状态转移方程为 B[i][j] = A[i][j] + Max( B[i+1][j], B[i+1][j+1] ); 代码: #include <stdio.h> const int MAX_N = 350 + 10; int A[MAX_N][MAX_N], B[MAX_N][MAX_N]; int Max( int a, int b ) { retu

POJ 3267-The Cow Lexicon(DP)

The Cow Lexicon Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 8252   Accepted: 3888 Description Few know that the cows have their own dictionary with W (1 ≤ W ≤ 600) words, each containing no more 25 of the characters 'a'..'z'. Their c

POJ 3176:Cow Bowling

Cow Bowling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13464   Accepted: 8897 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

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

Cow Bowling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14206   Accepted: 9428 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

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

Cow Bowling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14210   Accepted: 9432 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