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. Java实现CORS跨域请求

    问题 使用前后端分离模式开发项目时,往往会遇到这样一个问题 -- 无法跨域获取服务端数据 这是由于浏览器的同源策略导致的,目的是为了安全.在前后端分离开发模式备受青睐的今天,前端和后台项目往往会在不同 ...

  2. 树状数组(Binary Indexed Tree,BIT)

    树状数组(Binary Indexed Tree) 前面几篇文章我们分享的都是关于区间求和问题的几种解决方案,同时也介绍了线段树这样的数据结构,我们从中可以体会到合理解决方案带来的便利,对于大部分区间 ...

  3. 【京东详情页】——原生js爬坑之标签页

    一.引言 要做详情页的商品评价等5个li的标签页转换,效果如下: 二.实现原理 有一个特别的地方:上面五个li,但下面只有四个容器(table/div). 设计的目的:无论点哪个li,只有前四个div ...

  4. 一个综合实例讲解vue的基础知识点。

    本文通过一个简单的实例来讲解一下vue的基本知识点.通过这个综合实例的讲解,vue的基础知识就会掌握的差不多了. 首先看一下项目的效果:

  5. crontab的两大坑:百分号和环境变量

    今天想给服务器加个自动备份mysql数据库的功能(别怪我这么久才加,阿里云每天全盘备份的,不怕丢数据库),本以为只要5分钟就能搞定的,结果入了两个大坑. 我的crontab是这样写的: * * * m ...

  6. http://codeforces.com/contest/535/problem/C

    C. Tavas and Karafs time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  7. thinkphp传参

    use think\Request; 写法1: $parms=Request::instance()->param(); $param=$params['键值']; 写法2: $request= ...

  8. ZOJ2105 终于找到错误

    ZOJ2105:点击打开链接 错误代码 #include<stdio.h> #include<stdlib.h> int q[110]; int main() { int a, ...

  9. 使用IGP和BGP的配合达到降低路由容量目的的实验与总结

    概述 1.先说结论,通过eBGP协议,可以显著降低对非核心路由器的路由容量要求,因为核心路由器的数量明显少于非核心路由器,所以,通过此措施即联通网络,又降低设备要求,非常适宜大型网络. 2.因为网络规 ...

  10. 将 C# 枚举反序列化为 JSON 字符串 基础理论

    该转换过程需要引用 Newtonsoft.JSON,这其中的转换过程还是蛮有意思的. 一.定义枚举 /// <summary> /// 托寄物品枚举 /// </summary> ...