HDU_4826
Labyrinth
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 668 Accepted Submission(s): 299
每组数据的第一行输入两个正整数m,n(m<=100,n<=100)。接下来的m行,每行n个整数,分别代表相应格子中能得到金币的数量,每个整数都大于等于-100且小于等于100。
每组测试数据输出一行,输出一个整数,代表根据最优的打法,你走到右上角时可以获得的最大金币数目。
2
3 4
1 -1 1 0
2 -2 4 2
3 5 1 -90
2 2
1 1
1 1
Case #1:
18
Case #2:
4/*
dp。第一列最大直接求出,因为只有一种走法(向下)。然后后面有两种、==向下|| 向上。可推到出状态方程为
dp[i][j] = max(dp[i-1][j],dp[i][j-1]) + a[i][j] (向下)
dp[i][j] = max(dp[i+1][j], dp[i][j-1]) + a[i][j] (向上)
*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <algorithm>
#include <set>
#include <utility> #define INF 0xfffffff
#define max1 110 int a[max1][max1], dp[max1][max1], dp1[max1], dp2[max1]; int max(int a, int b) {
return a>b?a:b;
} int main() {
int t, flag = 1;
scanf("%d",&t);
while (t --) {
memset(a, 0, sizeof(a));
int m, n;
scanf("%d%d",&m, &n);
for (int i = 1; i<=m; i++)
for (int j = 1; j<=n; j++) scanf("%d",&a[i][j]);
memset(dp, 0, sizeof(dp));
for (int i = 2; i<=m; i++) {
a[i][1] = a[i][1] + a[i-1][1];
}
dp1[0] = dp2[0] = dp1[m+1] = dp2[m+1] = -9999999;
for (int j = 2; j<=n; j++) {
//向下
for (int i = 1; i<=m; i++) {
dp1[i] = max(dp1[i-1], a[i][j-1]) + a[i][j];
}
//向上
for (int i = m; i>=1; i--) {
dp2[i] = max(dp2[i+1], a[i][j-1]) + a[i][j];
}
for (int i = 1; i<=m; i++) {
a[i][j] = max(dp1[i], dp2[i]);
}
}
printf("Case #%d:\n%d\n",flag++, a[1][n]);
}
return 0;
}
HDU_4826的更多相关文章
随机推荐
- iOS通用链接(Universal Links)突然点击无效的解决方案
接上文<微信中通过页面(H5)直接打开本地app的解决方案>已经把iOS搞定并且已经正常能跑了,突然就再也用不了了... 问题描述 测试告诉我,如果从微信打开App之后,点击App右上角的 ...
- Java 读者写者问题
实验存档.V 允许好几个人同时读,但是不允许在有人读的时候写,以及同一时间只能有一个人在写. 读者.java: package operating.entity.readerwriter; impor ...
- 9.11 test
题面.pdf T1:通过打表发现,从一个点出发只有距离为1,2,3,5,6,9,10,13,17的点才不能到达: 那么我们转移的时候只有距离在20以内才不一定能直接转移,那么我们离散化之后; 对于每一 ...
- ES6 Proxy和Reflect (上)
Proxy概述 Proxy用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种"元编程"(meta programming),即对编程语言进行编程. Proxy可以理 ...
- ActiveMQ (一) 初识ActiveMQ
了解JMS JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进 ...
- windows 命令行打开浏览器
在命令行打开百度 start chrome www.baidu.com
- UWP TextBox私人定制
这次私人定制的是背景透明的TextBox,普通的TextBox在获取焦点后,背景色就变白色了. 下面的代码可以让TextBox的背景始终是透明的. 其实很简单,就修改了 <Setter Prop ...
- SSIS 实用表达式部分总结
下面,列出一些实用的表达式: 1,路径取文件名 RIGHT([FilePath],FINDSTRING(REVERSE([FilePath]),) - ) RIGHT(@[User::FilePath ...
- css div 细边框
.item{ max-width:48%; float:left; padding:2px; border-top:1px solid #000; border-left:1px solid #000 ...
- ubuntu环境下python虚拟环境的安装
一. 虚拟环境搭建 在开发中安装模块的方法: pip install 模块名称 之前我们安装模块都是直接在物理环境下安装,这种安装方法,后面一次安装的会覆盖掉前面一次安装的.那如果一台机器上面开发多个 ...