poj3176cow bowling

来源:互联网 发布:安全教育平台软件下载 编辑:程序博客网 时间:2024/06/08 19:11

           天天和这些奶牛打交道我也是蛮拼的=-=。。。。。

介绍一下题意吧就是奶牛在打保龄球,球只能在相邻的数字之间碰撞,求最后总得分

简单的dp,难的也不会做=-=

别的不说先上代码。。

#include <iostream>#include <stdio.h>#define M 500#include <cmath>#include <string.h>// 47MSusing namespace std;int map[M][M];int main(){    //freopen("in.txt","r",stdin);    int n;    int dp[M][M];    scanf("%d",&n);    for(int i=1;i<=n;i++)    {        for(int j=1;j<=i;j++)        {            scanf("%d",&map[i][j]);        }    }    for(int i=1;i<=n;i++)    {        for(int j=1;j<=i;j++)        {            if(i==1)            {                dp[i][j]=map[i][j];                continue;            }                if(j==1)                {                    dp[i][j]=dp[i-1][j]+map[i][j];                    continue;                }                if(j==i)                {                    dp[i][j]=dp[i-1][j-1]+map[i][j];                    continue;                }            dp[i][j]=max(dp[i-1][j],dp[i-1][j-1])+map[i][j];        }    }    int res=0;    for(int j=1;j<=n;j++)    {        res=max(dp[n][j],res);    }    printf("%d",res);    return 0;}
ps: 还有一点要注意就是二维数组不能开的太大了,好像不能还上千,我说怎么总运行失败呢。。

0 0
原创粉丝点击