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的更多相关文章
随机推荐
- vs发布项目webconfig替换语法
关于vs发布项目时webconfig替换语法也是最近才学到的东西,写这篇文章就当是作个备忘录吧,如果能帮助别人能够学习到webconfig如何替换那就再好不过了. 1.认识一下web项目下的web.D ...
- JS画几何图形之四【饼图】
饼图是将一个圆分割为多个扇形. 样例:http://www.zhaojz.com.cn/demo/draw8.html 依赖:[扇形] //饼图 //dot 圆点 //r 半径 //data 数据(一 ...
- appium 解锁九宫格
很多人在自动化的过程中,对解锁9宫格有很多麻烦,特别是app上的有些整个放在整个view中,这就给我们测试解锁九宫格带来问题了,笔者尝试了去解决,但是都没有找到一个很好的方案,那么我就试着先去通过安卓 ...
- python 中一些关键字的区别
一.raw_input 和input input和raw_input都可以读取控制台的输入,但是input和raw_input在处理数字时是有区别的 1.当输入为纯数字时 input返回的是数值类型, ...
- PHP call_user_func
<?php function my_call_back_function(){ echo "hello world!"; } class MyClass{ static fu ...
- 再谈javascript面向对象编程
前言:虽有陈皓<Javascript 面向对象编程>珠玉在前,但是我还是忍不住再画蛇添足的补上一篇文章,主要是因为javascript这门语言魅力.另外这篇文章是一篇入门文章,我也是才开始 ...
- Integer和int
例1: public static void main(String[] args){ Integer a = 128,b = 128; Integer c = 127,d = 127; System ...
- 阿里云ECS搭建SVN配置外网
阿里云ECS搭建SVN后,配置外网启动不了,检查云服务器没发现问题,后来发现是阿里云拦截,需要在阿里云控制台ECS安全组新增如下配置:
- python重试装饰器的简单实现
简单实现了一个在函数执行出现异常时自动重试的装饰器,支持控制最多重试次数,每次重试间隔,每次重试间隔时间递增. 最新的代码可以访问从github上获取 https://github.com/black ...
- Micropython教程之TPYBoardv102 DIY蓝牙智能小车实例
1.实验目的 1.学习在PC机系统中扩展简单I/O接口的方法. 2.进一步学习编制数据输出程序的设计方法. 3.学习蓝牙模块的接线方法及其工作原理. 4.学习L298N电机驱动板模块的接线方法. 5. ...