Problem Description
穿过幽谷意味着离大魔王lemon已经无限接近了!

可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关。要知道,不论何人,若在迷宫中被困1小时以上,则必死无疑!

可怜的yifenfei为了去救MM,义无返顾地跳进了迷宫。让我们一起帮帮执着的他吧!

命运大迷宫可以看成是一个两维的方格阵列,如下图所示:

H" title="Problem H">

yifenfei一开始在左上角,目的当然是到达右下角的大魔王所在地。迷宫的每一个格子都受到幸运女神眷恋或者痛苦魔王的诅咒,所以每个格子都对应一个值,走到那里便自动得到了对应的值。

现在规定yifenfei只能向右或者向下走,向下一次只能走一格。但是如果向右走,则每次可以走一格或者走到该行的列数是当前所在列数倍数的格子,即:如果当前格子是(x,y),下一步可以是(x+1,y),(x,y+1)或者(x,y*k)
其中k>1。

为了能够最大把握的消灭魔王lemon,yifenfei希望能够在这个命运大迷宫中得到最大的幸运值。

H" title="Problem H">

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
题意:略;
解题思路:感觉像数字三角形问题,有下往上遍历,有点心意的是可以向右走k倍的步数,但是题目说了K>1;但是判断条件的时候:
for(int
k=2;k<=j;k++)

      
if(j%k==0)

         d=max(d,dp[i][j/k]);//和走几步的比较出最大的
这里k必须有等于j的时候,什么题意啊,太不严谨了;
感悟:自己想就是有成就感
代码:
#include

#include

#include

#define M 1500

#define N 30

#define INT 0x3f3f3f3f

using namespace std;

int t,n,m,dp[N][M];

int main()

{

   
//freopen("in.txt","r",stdin);

   
scanf("%d",&t);

   
while(t--)

    {

       
scanf("%d%d",&n,&m);

       
for(int i=1;i<=n;i++)

           
for(int j=1;j<=m;j++)

           
scanf("%d",&dp[i][j]);

       
for(int i=0;i<=n;i++)

       
{

           
dp[i][0]=-INT;

           
dp[0][i]=-INT;

       
}

       
dp[0][1]=dp[1][0]=0;

       
for(int i=1;i<=n;i++)

           
for(int j=1;j<=m;j++)

           
{

               
if(i==1&&j==1)//第一步不用状态转移

                   
dp[i][j]=dp[i][j];

               
else if(j==1)//在最左边的就不能有向右的状态转移过来了

                   
dp[i][j]+=dp[i-1][j];

               
else

               
{

                   
int d=dp[i][j-1];//这是向右走一步的状态

                   
for(int k=2;k<=j;k++)

                   
if(j%k==0)

                       
d=max(d,dp[i][j/k]);//和走几步的比较出最大的

                   
if(i==1)

                       
dp[i][j]+=d;

                   
else

                       
dp[i][j]+=max(d,dp[i-1][j]);

               
}

           
}

           
//for(int i=1;i<=n;i++)

           
//{

           
//    for(int
j=1;j<=m;j++)

           
//       
printf("%d ",dp[i][j]);

           
//   
printf("\n");

           
//}

           
//printf("\n");

           
printf("%d\n",dp[n][m]);

    }

    return
0;

}

Problem H的更多相关文章

  1. 实验12:Problem H: 整型数组运算符重载

    Home Web Board ProblemSet Standing Status Statistics   Problem H: 整型数组运算符重载 Problem H: 整型数组运算符重载 Tim ...

  2. The Ninth Hunan Collegiate Programming Contest (2013) Problem H

    Problem H High bridge, low bridge Q: There are one high bridge and one low bridge across the river. ...

  3. Gym 100531H Problem H. Hiking in the Hills 二分

    Problem H. Hiking in the Hills 题目连接: http://codeforces.com/gym/100531/attachments Description Helen ...

  4. Codeforces Gym 100610 Problem H. Horrible Truth 瞎搞

    Problem H. Horrible Truth Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/1006 ...

  5. Codeforces Gym 100342H Problem H. Hard Test 构造题,卡迪杰斯特拉

    Problem H. Hard TestTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/at ...

  6. 清北学堂入学测试P4751 H’s problem(h)

    P4751 H’s problem(h)  时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试 描述 小H是一个喜欢逛街的女孩子,但是由于上了大学 ...

  7. 2013-2014 ACM-ICPC, NEERC, Southern Subregional Contest Problem H. Password Service dp

    Problem H. Password Service 题目连接: http://www.codeforces.com/gym/100253 Description Startups are here ...

  8. Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem H. Parallel Worlds 计算几何

    Problem H. Parallel Worlds 题目连接: http://opentrains.snarknews.info/~ejudge/team.cgi?SID=c75360ed7f2c7 ...

  9. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem H. Hometask 水题

    Problem H. Hometask 题目连接: http://codeforces.com/gym/100714 Description Kolya is still trying to pass ...

随机推荐

  1. Redis学习笔记之二 :在Java项目中使用Redis

    成功配置redis之后,便来学习使用redis.首先了解下redis的数据类型. Redis的数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set( ...

  2. wget下载整个网站

    wget下载整个网站wget下载整个网站可以使用下面的命令 wget -r -p -k -np http://hi.baidu.com/phps , -r 表示递归下载,会下载所有的链接,不过要注意的 ...

  3. Valgrind检测内存泄露简介

    原文地址: Valgrind 概述 体系结构 Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合.Valgrind由内核(core)以及基于内核的其他调试工具组成.内核 ...

  4. 用ES6巧妙的解决传统面试中的算法小问题!

    最近自己也在准备面试,在复习算法的时候,机智的用了一波ES6.一起来瞧瞧吧! 1.数组的去重 var arr=str.split(''); for(var i=0;i<arr.length-1; ...

  5. 渣渣学QT

    初学QT,自己的一些小总结,错误之处,望大神指点一二: 1,添加资源文件时想应用在界面的背景,但是发现用不了,后来才知道是没有"构建"?应该是要在构建之后才将所添加的资源文件真正的 ...

  6. 基于SSM之Mybatis接口实现增删改查(CRUD)功能

    国庆已过,要安心的学习了. SSM框架以前做过基本的了解,相比于ssh它更为优秀. 现基于JAVA应用程序用Mybatis接口简单的实现CRUD功能: 基本结构: (PS:其实这个就是用的Mapper ...

  7. commons-pool与commons-pool2连接池

    commons-pool和commons-pool2是用来建立对象池的框架,提供了一些将对象池化必须要实现的接口和一些默认动作.对象池化之后可以通过pool的概念去管理其生命周期,例如对象的创建,使用 ...

  8. MYSQL数据库45道练习题

    --第一题查询Student表中的所有记录的Sname.Ssex和Class列.select Sname,Ssex,Class from Student;--第二题查询教师所有的单位即不重复的Depa ...

  9. flume自定义Source(taildirSource),自定义Sink(数据库),开发完整步骤

    一.flume简单了解推荐网站(简介包括简单案例部署): http://www.aboutyun.com/thread-8917-1-1.html 二.我的需求是实现从ftp目录下采集数据,目录下文件 ...

  10. 什么是git?window下安装git

    一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...