POJ 3176 Cow Bowling (dp)

来源:互联网 发布:数据bi平台 编辑:程序博客网 时间:2024/05/29 07:38

题意,给出一个数字三角,按以下方式求最值。

Explanation of the sample:

          7

         *

        3   8

       *

      8   1   0

       *

    2   7   4   4

       *

  4   5   2   6   5

#include<stdio.h>#include<iostream>#include<math.h>#include<string.h>#include<iomanip>#include<stdlib.h>#include<ctype.h>#include<algorithm>#include<deque>#include<functional>#include<iterator>#include<vector>#include<list>#include<map>#include<queue>#include<set>#include<stack>#include<sstream>#define CPY(A, B) memcpy(A, B, sizeof(A))typedef long long LL;typedef unsigned long long uLL;const int MOD = 1e9 + 7;const int INF = 0x3f3f3f3f;const LL INFF = 0x3f3f3f3f3f3f3f3fLL;const double EPS = 1e-9;const double OO = 1e20;const double PI = acos (-1.0);int dx[]= {0,1,1,1,0,-1,-1,-1};int dy[]= {1,1,0,-1,-1,-1,0,1};int gcd (const LL &a, const LL &b) {return b==0?a:gcd (b,a%b);}using namespace std;int a[410][410],dp[410][410];int main() {    int n; cin>>n;    memset (dp,0,sizeof (dp) );    for (int i=0; i<n; i++) {        for (int j=0; j<=i;/***/ ++j) {            scanf ("%d",&a[i][j]);        }    }    for (int i=0; i<n; ++i) {dp[n-1][i]=a[n-1][i];}    for (int i=n-2; i>=0; --i) {        for (int j=0; j<=i; ++j) {            dp[i][j]=a[i][j]+max (dp[i+1][j],dp[i+1][j+1]);        }    }    printf ("%d\n",dp[0][0]);    return 0;}



0 0
原创粉丝点击