poj-3176Cow Bowling

来源:互联网 发布:excel表重复数据筛选 编辑:程序博客网 时间:2024/06/07 12:02

奶牛保龄球:金字塔形的保龄球中从顶往下撞击,每次只能撞击左下或右下两个,求所有撞到得分的最高值。

dp:dp[i][j]=max(d[i+1][j],dp[i+1][j+1])+m[i][j];

#include<cstdio>#include<iostream>using namespace std;int ma(int x,int y){    if(x>y)        return x;    else        return y;}int main(){    int dp[355][355],m[355][355];    int n;    scanf("%d",&n);    for(int i=0;i<n;i++)        for(int j=0;j<=i;j++)        {            scanf("%d",&m[i][j]);        }    for(int i=n-1,j=0;j<=i;j++)    {        dp[i][j]=m[i][j];        //cout<<dp[i][j]<<endl;    }    for(int i=n-1;i>=0;i--)        for(int j=0;j<=i;j++)            dp[i][j]=ma(dp[i+1][j],dp[i+1][j+1])+m[i][j];    printf("%d",dp[0][0]);    return 0;}