P1508 Likecloud-吃、吃、吃

题目背景

问世间,青春期为何物?

答曰:“甲亢,甲亢,再甲亢;挨饿,挨饿,再挨饿!”

题目描述

正处在某一特定时期之中的李大水牛由于消化系统比较发达,最近一直处在饥饿的状态中。某日上课,正当他饿得头昏眼花之时,眼前突然闪现出了一个n*m(n and m<=200)的矩型的巨型大餐桌,而自己正处在这个大餐桌的一侧的中点下边。餐桌被划分为了n*m个小方格,每一个方格中都有一个圆形的巨型大餐盘,上面盛满了令李大水牛朝思暮想的食物。李大水牛已将餐桌上所有的食物按其所能提供的能量打了分(有些是负的,因为吃了要拉肚子),他决定从自己所处的位置吃到餐桌的另一侧,但他吃东西有一个习惯——只吃自己前方或左前方或右前方的盘中的食物。

由于李大水牛已饿得不想动脑了,而他又想获得最大的能量,因此,他将这个问题交给了你。

每组数据的出发点都是最后一行的中间位置的下方!

输入输出格式

输入格式:

[输入数据:]

第一行为m n.(n为奇数),李大水牛一开始在最后一行的中间的下方

接下来为m*n的数字距阵.

共有m行,每行n个数字.数字间用空格隔开.代表该格子上的盘中的食物所能提供的能量.

数字全是整数.

输出格式:

[输出数据:]

一个数,为你所找出的最大能量值.

输入输出样例

输入样例#1:

6 7
16 4 3 12 6 0 3
4 -5 6 7 0 0 2
6 0 -1 -2 3 6 8
5 3 4 0 0 -2 7
-1 7 4 0 7 -5 6
0 -1 3 4 12 4 2
输出样例#1:

41

说明

快吃!快吃!快吃!

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 220
using namespace std;
bool vis[N][N];
]={,,-};
int n,m,ans,a[N][N];
int read()
{
    ,f=;char ch=getchar();
    ; ch=getchar();}
    +ch-'; ch=getchar();}
    return x*f;
}
void dfs(int x,int y,int tot)
{
    ) {ans=max(ans,tot); return ;}
    ;i<;i++)
    {
        ,fy=y+yy[i];
        ||fy<||fx>n||fy>m||vis[fx][fy]) continue;
        vis[fx][fy]=true;
        dfs(fx,fy,tot+a[fx][fy]);
        vis[fx][fy]=false;
    }
}
int main()
{
    n=read(),m=read();
    ;i<=n;i++)
     ;j<=m;j++)
      a[i][j]=read();
    dfs(n+,m/+,);
    printf("%d",ans);
}

30分T死的dfs

dp(类似于数字三角形)

从下往上挨着加,然后找第一行中最大的那个

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 220
using namespace std;
int n,m,a[N][N];
long long ans,dp[N][N];
int read()
{
    ,f=; char ch=getchar();
    ; ch=getchar();}
    +ch-'; ch=getchar();}
    return x*f;
}
int main()
{
    n=read(),m=read();
    ;i<=n;i++)
     ;j<=m;j++)
      a[i][j]=read();
    dp[n][m/]=a[n][m/];
    dp[n][m/+]=a[n][m/+];
    dp[n][(m+)/]=a[n][(m+)/];
    ;i>=;i--)
     ;j<=m;j++)
      ][j+]&&!dp[i+][j]&&!dp[i+][j-]) dp[i][j]=;
      ][j],max(dp[i+][j-],dp[i+][j+]))+a[i][j];
    ;i<=n;i++)
     ans=max(ans,dp[][i]);
    printf("%lld",ans);
    ;
}

最新文章

  1. 全新 Mac 安装指南(编程篇)(环境变量、Shell 终端、SSH 远程连接)
  2. navDemo
  3. 数据泵如何生成导出文件的DDL脚本
  4. SQL Server with(nolock)详解
  5. Myeclipse其实和Eclipse差不多的, 至少不输出来的项目时一模一样的
  6. Grub2 使用摘记
  7. C++ strcpy strcpy_s strncpy strlcpy
  8. 一个请求中,ADF、JSF究竟做了哪些工作
  9. NYOJ 25 A Famous Music Composer
  10. python之地基(三)
  11. PS换脸操作
  12. Spring之配置文件bean作用域的详细介绍
  13. AngularJS移动端页面input无法输入
  14. 禁止光盘优盘自动播放(Shell Hardware Detection服务)
  15. js实现冒泡事件,点击ul给子标签添加相同事件和阻止冒泡事件
  16. Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
  17. Android Call(打电话)的基本知识详解
  18. QTime的本质上是一个int,QDateTime本质上是一个qint64
  19. pbs &quot;ll: command not found&quot;
  20. 栈的基本操作--java实现

热门文章

  1. python之自定义排序函数sorted()
  2. Python虚拟机框架
  3. luogu2580 于是他错误的点名开始了 Trie树
  4. Java集合数据类型
  5. day03_07 变量的重新赋值01
  6. python--eclipse第一步总结
  7. 部署文件到IIS
  8. 2016湖南省赛----G - Parenthesis (括号匹配)
  9. iOS------主题设置--&gt;Appearance
  10. 【Luogu】P2219修筑绿化带(单调队列)