Problem Description
穿过幽谷意味着离大魔王lemon已经无限接近了!
可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关。要知道,不论何人,若在迷宫中被困1小时以上,则必死无疑!
可怜的yifenfei为了去救MM,义无返顾地跳进了迷宫。让我们一起帮帮执着的他吧!
命运大迷宫可以看成是一个两维的方格阵列,如下图所示:
 
yifenfei一开始在左上角,目的当然是到达右下角的大魔王所在地。迷宫的每一个格子都受到幸运女神眷恋或者痛苦魔王的诅咒,所以每个格子都对应一个值,走到那里便自动得到了对应的值。
现在规定yifenfei只能向右或者向下走,向下一次只能走一格。但是如果向右走,则每次可以走一格或者走到该行的列数是当前所在列数倍数的格子,即:如果当前格子是(x,y),下一步可以是(x+1,y),(x,y+1)或者(x,y*k) 其中k>1。 
为了能够最大把握的消灭魔王lemon,yifenfei希望能够在这个命运大迷宫中得到最大的幸运值。
Input
输入数据首先是一个整数C,表示测试数据的组数。
每组测试数据的第一行是两个整数n,m,分别表示行数和列数(1<=n<=20,10<=m<=1000);
接着是n行数据,每行包含m个整数,表示n行m列的格子对应的幸运值K ( |k|<100 )。
Output
请对应每组测试数据输出一个整数,表示yifenfei可以得到的最大幸运值。
Sample Input
1 3 8 9 10 10 10 10 -10 10 10 10 -11 -1 0 2 11 10 -20 -11 -11 10 11 2 10 -10 -10
Sample Output
52

一道简单的DP,只要注意一下各种细节……

不过总感觉我做的时候绕了点弯……还是思路不够清晰。

#include <iostream>
#include <cstdio>using namespace std;int main()
{int t, n, m, i, j, k, c, d, map[21][1005], temp;cin >> t;while (t--){cin >> n >> m;for (i = 0; i < n; i++)for (j = 0; j < m; j++)scanf_s("%d", &map[i][j]);for (k = 1; k < m + n - 2; k++){temp = -10000000;if (k >= m)i = k - m + 1;elsei = 0;for (; i < n && i <= k; i++){j = k - i;if (i == 0 && j == 1){temp = map[0][0];map[i][j] += temp;continue;}if (i != 0)temp = map[i - 1][j];if (j != 0){if (map[i][0] > temp)temp = map[i][0];if (map[i][j - 1] > temp)temp = map[i][j - 1];}for (c = 2; c <= (j + 1) / 2; c++){d = (j + 1) / c;if (d * c == j + 1){if (map[i][c - 1] > temp)temp = map[i][c - 1];if (map[i][d - 1] > temp)temp = map[i][d - 1];}}map[i][j] += temp;}}if (map[n - 2][m - 1] > map[n - 1][m - 2])map[n - 1][m - 1] += map[n - 2][m - 1];elsemap[n - 1][m - 1] += map[n - 1][m - 2];cout << map[n - 1][m - 1] << endl;}return 0;
}

"Farewell Ashen One. May the flames guide thee."

HDU2571 命运(DP)相关推荐

  1. HDU2571 命运(dp问题)

    命运 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  2. HDU2571 命运【动态规划DP】

    命运 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission ...

  3. HDU2571:命运(DP) 超详细题解

    题目 穿过幽谷意味着离大魔王lemon已经无限接近了! 可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关.要知道,不论何人,若在迷宫中 ...

  4. 【题解】HDU2571 命运

    首先是原题链接http://hdu.hustoj.com/showproblem.php?pid=2571 原题: 命运 Time Limit: 2000/1000 MS (Java/Others) ...

  5. HDU-2571 命运

    Problem Description 穿过幽谷意味着离大魔王lemon已经无限接近了! 可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个 ...

  6. ACM公选课第八节DP基础3 2020.4.23-5.10补

    文章目录 hdu2571 命运 复习了下,把没讲的从右到左遍历(不是递归)讲了下 递归或打表都可 打表就一行一行(从左遍历到右)直接出 nefu169步步惊心 与上面相似(当最短时,一定单调上升!!! ...

  7. ACM公选课第七节DP基础2+3 2020.4.21-5.10补

    文章目录 核心思想:只计算一次 nefu16 RUNFUN 记忆化数组 nefu91 Recaman Sequence 类似桶排,记忆数组 classic 先全算一遍呗 类似素数打表 nefu18 滑 ...

  8. HDU各种考试题题解

    HDU各种考试题目一览 - Virtual Judge HDU研究生程序机考与考试 浙大计算机研究生复试上机考试-2005年 HDU1228 A + B[map] - 海岛Blog - CSDN博客 ...

  9. hdu 1228java_HDU各种考试题题解

    HDU各种考试题题解 浙大计算机研究生复试上机考试-2005年 HDU1228 A + B[map] - 海岛Blog - CSDN博客 HDU1231 最大连续子序列[最大子段和+DP]_算法,动态 ...

最新文章

  1. 通过@Enable*注解触发Spring Boot配置
  2. 九眼智能:信息安全是网络发展的关键
  3. 30销售是让用户开心的购买和消费
  4. 智能快递柜10月1日起按新规管理
  5. 基本sql语句--触发器
  6. 卡内基梅隆 计算机音乐,音乐留学|卡内基梅隆音乐技术专业和申请要求详解!...
  7. jQuery Validate 表单验证插件----Validate简介,官方文档,官方下载地址
  8. 网页设计中常用的Web安全字体
  9. H264和MPEG4区别
  10. 150. Evaluate Reverse Polish Notation逆波兰表达式
  11. cmos sensor camera banding 现象发生原因及相关问题
  12. laravel5.7定时群发邮件
  13. Bluetooth协议
  14. thermal啥意思_thermal是什么意思?
  15. SuperMap iObject常见问题解答集锦(四)
  16. Python实现ALO蚁狮优化算法优化支持向量机分类模型(SVC算法)项目实战
  17. 别管哪条公链了,你听过数字恐龙吗?
  18. mybatis调用oracle视图
  19. 第三节:洛必达法则使用与3组等价代换
  20. Java source1.5不支持diamond运算符,请使用source 7或更高版本以启用diamond运算符

热门文章

  1. JS 实现数字转换为大写中文金额
  2. 笔记本电脑外接显示器出现灰屏
  3. 3第三课:区块链的激励机制
  4. mac 微信 QQ 截图 问题
  5. Python生成透明背景图片
  6. PyQt4对话框(dialog类型介绍)
  7. cad断点快捷键_史上最好的CAD常用快捷键及使用方法集
  8. 看完《长安十二时辰》惊呆了!难道唐朝就已经有大数据和云计算?
  9. 上海亚商投顾:沪指录得6连阳 两市成交再度破万亿
  10. 在ubuntu上搭建IC数模混合环境