【POJ】[3176]Cow Bowling

文章字数:114

问题描述

Cow Bowling

问题分析

经典dp问题 从下面向上有 $dp[i][j]+=max(dp[i+1][j],dp[i+1][j+1])$ 所以最后结果就会是$dp[0][0]$

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<stdio.h>
#include<algorithm>
using namespace std;
int map[352][352];
int main() {
    int n;
    while(scanf("%d",&n)!=EOF) {
        for(int i=0; i<n; i++)
            for(int j=0; j<=i; j++)
                scanf("%d",&map[i][j]);
        if(n==1) {
            printf("%d\n",map[0][0]);
            continue;
        }
        for(int i=n-2; i>=0; i--) {
            for(int j=0; j<=i; j++) {
                map[i][j]+=max(map[i+1][j],map[i+1][j+1]);
            }
        }
        printf("%d\n",map[0][0]);
    }
    return 0;
}

该内容采用 CC BY-NC-SA 4.0 许可协议。

如果对您有帮助或存在意见建议,欢迎在下方评论交流。

加载中...