命运(HDU-2571)
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 -10Sample Output
52
思路:
设:dp[i][j]是第i行第j列的幸运值的和
则:
状态方程:
向下与向右走一格的情况:dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
走当前所在列数倍数格的情况:dp[i][j]=max(dp[i][j],dp[i][j/k]);
最后记得加上当前格的值:dp[i][j]+=num[i][j];
边界条件:dp[1][0]=0;
dp[0][1]=0;
注意:由于存在负数,需将dp初始化为一个极小的负数。
Source Program
#include<iostream>
#include<cstring>
#define N 1001
using namespace std;int num[21][N];
int dp[21][N];int main()
{int c,n,m;int i,j,k;cin>>c;while(c--){cin>>n>>m;for(i=1;i<=n;i++)for(j=1;j<=m;j++)cin>>num[i][j];/*由于存在负数,需初始化为一很大的负数*/for(i=0;i<=n;i++)dp[i][0]=-999999;for(j=0;j<=m;j++)dp[0][j]=-999999;/*边界条件*/dp[1][0]=0;dp[0][1]=0;for(i=1;i<=n;i++){for(j=1;j<=m;j++){dp[i][j]=max(dp[i-1][j],dp[i][j-1]);//向下与向右走一格的情况for(k=2;k<=m;k++)//走当前所在列数倍数格的情况if(j%k==0)dp[i][j]=max(dp[i][j],dp[i][j/k]);dp[i][j]+=num[i][j];//加上当前格的值}}cout<<dp[n][m]<<endl;}}
命运(HDU-2571)相关推荐
- HDU 2571 命运
命运 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- 【HDU - 2571】 命运(记忆化搜索)
题干: 穿过幽谷意味着离大魔王lemon已经无限接近了! 可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关.要知道,不论何人,若在迷 ...
- 命运(HDU 2571 简单动态规划)
命运 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- hdu 2571 命运
命运 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- HDU - 2571
穿过幽谷意味着离大魔王lemon已经无限接近了! 可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关.要知道,不论何人,若在迷宫中被困1 ...
- HDU 2571(dp)题解
命运 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- selenium 页面经常改变元素_selenium用jquery改变元素属性
一.jQuery 语法 jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作. 1.基础语法: $(selector).action() 选择符(selector)即," ...
- 个人DP训练(基础版)
题目链接 hdu 2955 Robberies 01背包,转化为求被抓的概率. 题目链接 hdu 1864 最大报销额 01背包,每张发票的总额为容量和价值,注意预处理数据,对 ...
- sdkd2019.3.20训练题目
A. HDU 2046 第一次看到这个,题目,想到的是动态规划,真是思维僵化了,总想套,而如果仔细想它的构成方法,就会很容易想到汉诺塔的那个想法,面对复杂的问题,先思考距离胜利一步之遥的时候要怎么解决 ...
- 有趣的动态规划题目(一)
文章目录 [HDOJ 2084.数塔] [HDOJ 1176.免费馅饼] [HDOJ 1864.最大报销额] [HDOJ 1003.Max Sum] [HDOJ 1506.Largest Rectan ...
最新文章
- 1行代码搞定Latex公式编写,这个4.6M的Python小插件,堪称论文必备神器
- 荔枝FM 字体文件 IconFontTextView
- 汇编语言ac和c何时为1,汇编语言课堂练习一(参考答案)
- 专业网络推广浅析蜘蛛对网站有抓取但没收录的现象
- 自学python需要安装什么软件-学Python需要安装什么软件?Python软件工具大全
- dos下查看机器端口占用情况
- for循环中的参数能不省略
- 利用lxml爬取豆瓣小组内容文档并保存
- 进度条(5.16-5.22)
- gstreamer之RTSP Server test-mp4正确运行代码
- 统计学 常用的数据分析方法大总结,推荐收藏
- laravel框架跨域请求
- 我被一只老鼠的吱吱声吵醒了
- 如何通俗易懂地解释卷积?
- MGN(多粒度网络)模型训练的详细步骤
- ⅰcp经济模型_EOQ经济批量模型上篇(模型基础)
- [ 安装 ] MySQL安装步骤!
- Win11家庭版安装+PE 完结版
- 20170922在arduino IDE添加mega16\32\64\128 mcu支持
- 零基础可以学习数据分析吗,有没有好的培训机构推荐?