在一个 n \times mn×m 中的方格中,每个格子上都有一个分数,现在蒜头君从 (1,1)(1,1) 的格子开始往 (n, m)(n,m) 的格子走。要求从 (x_1,y_1)(x1​,y1​) 到 (x_2,y_2)(x2​,y2​) ,满足 x_2 \ge x_1,\ y_2 \ge y_1x2​≥x1​, y2​≥y1​ 。请问蒜头君从 (1,1)(1,1) 的点到 (n,m)(n,m) 最多可以得多少分?

每个格子的分数只能得到一次,其中 (1,1)(1,1) 和 (n,m)(n,m) 是必须要走的两个格子,(1,1)(1,1) 表示第一行第一列的方格。

输入格式

第一行输入两个整数 n,mn,m ,表示有 n\times mn×m 个方格。

接下来输入 nn 行 mm 列个整数 gradegrade 。

数据范围与约定

对于 100\%100% 的数据,-300 \le grade \le 300−300≤grade≤300。

对于 30\%30% 的数据, 1 \le n,m \le 51≤n,m≤5 。

对于 60\%60% 的数据, 1 \le n,m \le 601≤n,m≤60 。

对于 100\%100% 的数据, 1 \le n,m \le 5001≤n,m≤500

输出格式

输出一个整数表示蒜头君能获取到的最大分数。

样例输入复制

3 3
1 2 3
4 5 6
7 8 9

样例输出复制

29

题解:
很容易的想到dp表达式 dp[i][j] = max(dp[i-1][j], dp[i][j-1]) + a[i][j]
但是这题目的意思是每个格子的分数可要可不要,(1,1),(n,m)格子的分数必须要
所以在代码中得加几个判断,除(1,1),(n,m)外的其他小于0的分数都不要
#include <map>
#include <set>
#include <stack>
#include <cmath>
#include <queue>
#include <cstdio>
#include <vector>
#include <string>
#include <bitset>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <algorithm>
#define ls (r<<1)
#define rs (r<<1|1)
#define debug(a) cout << #a << " " << a << endl
using namespace std;
typedef long long ll;
const ll maxn = 1e3+10;
const ll mod = 1e9+7;
const double pi = acos(-1.0);
const double eps = 1e-8;
ll n, m, a[maxn][maxn], dp[maxn][maxn];
int main() {
scanf("%lld%lld",&n,&m);
for( ll i = 1; i <= n; i ++ ) {
for( ll j = 1; j <= m; j ++ ) {
scanf("%lld",&a[i][j]);
}
}
for( ll i = 1; i <= n; i ++ ) {
for( ll j = 1; j <= m; j ++ ) {
if( ( i == 1 && j == 1 ) || ( i == n && j == m ) ) {
dp[i][j] = a[i][j] + max(dp[i-1][j],dp[i][j-1]);
} else {
dp[i][j] = max((ll)0,a[i][j]) + max(dp[i-1][j],dp[i][j-1]);
}
}
}
cout << dp[n][m] << endl;
return 0;
}

  

计蒜客 蓝桥杯模拟 瞬间移动 dp的更多相关文章

  1. 计蒜客蓝桥杯模拟赛 后缀字符串:STL_map+贪心

    问题描述 一天蒜头君得到 n 个字符串 si​,每个字符串的长度都不超过 10. 蒜头君在想,在这 n 个字符串中,以 si​ 为后缀的字符串有多少个呢? 输入格式 第一行输入一个整数 n. 接下来  ...

  2. 计蒜客蓝桥杯模拟赛五J. 程序设计:放置守卫

    在一张 n 行 m 列的方格地图上放置一些守卫,每个守卫能守护上.左.右三个方向上相邻的方格和自己所在的方格.如下图,红色的方格放置守卫,绿色的方格为该守卫守护的区域. 现在要求在地图上放置若干个守卫 ...

  3. 计蒜客 蓝桥模拟 B.素数个数

    用 0,1,2,3⋯70,1,2,3 \cdots 70,1,2,3⋯7 这 888 个数组成的所有整数中,质数有多少个(每个数字必须用到且只能用一次). 提示:以 000 开始的数字是非法数字. 代 ...

  4. 计蒜客 蓝桥模拟 A. 结果填空:矩阵求和

    给你一个从 n×nn \times nn×n 的矩阵,里面填充 111 到 n×nn \times nn×n .例如当 nnn 等于 333 的时候,填充的矩阵如下.   1 1 2 3 2 4 5 ...

  5. 计蒜客 蓝桥模拟 I. 天上的星星

    计算二维前缀和,节省时间.容斥定理. 代码: #include <cstdio> #include <cstdlib> #include <cstring> #in ...

  6. 计蒜客 蓝桥模拟 H. 封印之门

    Floyd算法,最短路,判断a,b是否相等. 代码: #include <cstdio> #include <cstdlib> #include <cstring> ...

  7. 计蒜客 蓝桥模拟 F. 结果填空:数独

    代码: #include <cstdio> #include <cstdlib> #include <cstring> #include <iostream& ...

  8. 计蒜客 蓝桥模拟 G. 数列求值

    递归式移项得Ai+1 = 2Ai + 2Ci - Ai-1; 1.A2 = 2A1 + 2C1 - A0; 2.A3 = 2A2 + 2C2 - A1; . . . n.An+1 = 2An + 2C ...

  9. 计蒜客 取数游戏 博弈+dp

    题目链接 取数游戏 思路:dp(x, y)表示先手在区间[x, y]能取得的最大分数.当先手取完,就轮到后手去,后手一定会选择当前能令他得到最大分数的策略,其实当先手在[x, y]区间两端取走一个数, ...

随机推荐

  1. 动态开内存(malloc与calloc)

    malloc与calloc 1.函数原型 #include<stdlib.h> void *malloc(unsigned int size);     //申请size字节的内存 voi ...

  2. ansible批量管理服务 上

    1 ansible简介 1.1 ansible批量管理服务概述 (1)是基于python语言开发的自动化软件工具(2)是基于SSH远程管理服务实现远程主机批量管理(3)并行管理,部署简单,应用也简单方 ...

  3. tcp四次挥手为什么要等待2MSL

    之前所说了解有两个原因: 1.防止客户端最后一次发给服务器的确认在网络中丢失以至于客户端关闭,而服务端并未关闭,导致资源的浪费. 2.等待最大的2msl可以让本次连接的所有的网络包在链路上消失,以防造 ...

  4. spring aop 解决模糊查询参数 % - /等特殊符号问题

    import com.hsq.common.utils.StringUtil;import org.aspectj.lang.ProceedingJoinPoint;import org.aspect ...

  5. 【数据结构学习】关于HashMap的那些事儿

    涉及数据结构 红黑树 链表 哈希 从CRUD说起 预热知识: DEFAULT_INITIAL_CAPACITY = 1 << 4, HashMap默认容量为16(n << m意 ...

  6. 【Python】狂蟒来袭 | 使用Anaconda搭建Python开发环境

    这段时间转了一个小圈圈,发现又回来了,瞎忙.想要学习数据挖掘的小伙伴一定得对机器学习有所了解吧,我之前看过几页周志华老师的西瓜书,但终没能坚持下来. 人生处处是起点,什么时候都不晚.记此笔记以分享与督 ...

  7. jvisualvm/Jconsole监控WAS中间件

    1.登录was控制台https://196.168.119.18:9043/ibm/console/,找到自己的应用程序服务器---java和进程管理---进程定义--JAVA虚拟机,然后配置 通用J ...

  8. HTML加载FLASH(*.swf文件)详解

    引言 在web项目中经常会遇到在线浏览word文档,通常解决方法将word转换成pdf,然后在线浏览,但是在实际实现过程中,由于阅读器的原因,用户可以直接下载该pdf,这显然不是我们想要的,通过网络搜 ...

  9. 在Linux和Windows系统中输出目录结构

    前言 一直以来就想在写文章时,能以文本形式(而不是截图)附上项目的目录结构,今天终于知道怎么操作了,在这分享一下. Linux 首先说下Linux上输出目录结构的方法. yum安装tree 需要支持t ...

  10. JAVA的初体验

    jdk的地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html 第一步:找到相应的JAVA SE版本,点击down ...