题目    

//不能广搜,会超内存
//可以用dp思想模拟
//map 后来保存的是 保存由前面推来的最大的幸运总值的点
//下标从1开始,不然倍数会有问题

//AC 代码:

AC代码

//不能广搜,会超内存
//可以用dp思想模拟
//map 后来保存的是 保存由前面推来的最大的幸运总值的点
//下标从1开始,不然倍数会有问题
//又错了那么多次。。。
//重写。。。
//求过!!! #include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
int t,n,m,i,j,k,map[][];
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m); memset(map,-,sizeof(map)); for(i=;i<=n;i++)
{
for(j=;j<=m;j++)
{
scanf("%d",&map[i][j]);
}
} for(i=;i<=n;i++)
{
for(j=;j<=m;j++)
{
int maxx=-;
for(k=;k<=m;k++)
{
if(j%k==)
{
maxx=maxx>map[i][j/k]? maxx:map[i][j/k];
}
}
if(maxx<map[i-][j])maxx=map[i-][j];
if(maxx<map[i][j-])maxx=map[i][j-];
if(!(i==&&j==))
map[i][j]+=maxx;
}
} printf("%d\n",map[n][m]);
} return ;
}

//模拟时最好不要分开,因为我分开写错了——求高人指点为什么我分开写错掉了,明明思路是一样的啊

//错掉的代码:

//不能广搜,会超内存
//可以用dp思想模拟
//temp 保存由前面推来的最大的幸运总值的点 #include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue>
using namespace std;
int main()
{
int t,n,m,i,j,k,map[][];
int temp[][];
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
//一切要从1开始!!否则倍数有问题!!
for(i=;i<=n;i++)
{
for(j=;j<=m;j++)
{
scanf("%d",&map[i][j]);
}
} //没有初始化?
memset(temp,-,sizeof(temp)); temp[][]=map[][];
//(x,y+1)
for(j=;j<=m;j++)
temp[][j]=map[][j]+temp[][j-];
//(x+1,y)
for(i=;i<=n;i++)
temp[i][]=map[i][]+temp[i-][];
//(x,y*k)
for(j=;j<=m;j++)
{
for(k=;k<=m;k++)
{
if(j%k==)
{
temp[][j]=temp[][j]>(map[][j]+temp[][j/k])? temp[][j]:(map[][j]+temp[][j/k]);
}
}
} for(i=;i<=n;i++)
{
for(j=;j<=m;j++)
{
//(x,y+1)
temp[i][j]=temp[i][j]>(map[i][j]+temp[i][j-])? temp[i][j]:(map[i][j]+temp[i][j-]);
//(x,y*k)
for(k=;k<=m;k++)
{
if(j%k==)
{
temp[i][j]=temp[i][j]>(map[i][j]+temp[i][j/k])? temp[i][j]:(map[i][j]+temp[i][j/k]);
}
}
//(x+1,y)
temp[i][j]=temp[i][j]>(map[i][j]+temp[i-][j])? temp[i][j]:(map[i][j]+temp[i-][j]);
}
}
printf("%d\n",temp[n][m]);
} return ;
}

为什么这样分开写错呢

hdu 2571 命运(递推,请小心)的更多相关文章

  1. HDU 2571 命运 (DP)

    命运 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Pr ...

  2. HDU 4747 Mex 递推/线段树

    题目链接: acm.hdu.edu.cn/showproblem.php?pid=4747 Mex Time Limit: 15000/5000 MS (Java/Others)Memory Limi ...

  3. hdu 1249 三角形 (递推)

    三角形 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...

  4. 致初学者(四):HDU 2044~2050 递推专项习题解

    所谓递推,是指从已知的初始条件出发,依据某种递推关系,逐次推出所要求的各中间结果及最后结果.其中初始条件或是问题本身已经给定,或是通过对问题的分析与化简后确定.关于递推的知识可以参阅本博客中随笔“递推 ...

  5. HDU 2604 Queuing(递推+矩阵)

    Queuing [题目链接]Queuing [题目类型]递推+矩阵 &题解: 这题想是早就想出来了,就坑在初始化那块,只把要用的初始化了没有把其他的赋值为0,调了3,4个小时 = = 本题是可 ...

  6. HDU - 2604 Queuing(递推式+矩阵快速幂)

    Queuing Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  7. hdu 1723 DP/递推

    题意:有一队人(人数 ≥ 1),开头一个人要将消息传到末尾一个人那里,规定每次最多可以向后传n个人,问共有多少种传达方式. 这道题我刚拿到手没有想过 DP ,我觉得这样传消息其实很像 Fibonacc ...

  8. [hdu 2604] Queuing 递推 矩阵快速幂

    Problem Description Queues and Priority Queues are data structures which are known to most computer ...

  9. HDU 5366 dp 递推

    The mook jong Accepts: 506 Submissions: 1281 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65 ...

随机推荐

  1. cygwin

    setup-x86_64 -q -P wget,tar,qawk,bzip2,subversion,vim wget rawgit.com/transcode-open/apt-cyg/master/ ...

  2. .net 动态编译解决考勤计算问题

    由于公司实施SAP HR项目,但是SAP HR对考勤功能真的太弱化了,直接从考勤机上读取的原始打卡记录不能直接传输到HR系统里面,因为SAP HR不能识别那些多余的打卡记录,而且必须把打卡记录进行成组 ...

  3. hdu 5199 Gunner

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=5199 简单题,stl水之... #include<algorithm> #include& ...

  4. [shell基础]——tr命令

    (1) tr 字符替换 测试文本内容 # cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4. ...

  5. color the python console text

    //install termcolor module cd \ cd python27 cd scripts pip install termcolor pip install colorama // ...

  6. jQuery多库共存处理

    jQuery多库共存处理(来自慕课网) 多库共存换句话说可以叫无冲突处理. 总的来说会有2种情况会遇到: 1.$太火热,jQuery采用$作为命名空间,不免会与别的库框架或者插件相冲突. 2.jQue ...

  7. mysql开机脚本

    #!/bin/bash basedir=/home/app/db/mysql datadir=$basedir/data conf=$basedir/etc/my.cnf pid_file=$data ...

  8. 五、案例-指令参考-freemarker指令、表达式

    案例-指令参考描述:本人自己测试写了一遍,如有错的地方,懂freemarker的朋友望指点指点! 案例-指令参考 表达式 一. Assign 1.<#assign name1="北京& ...

  9. MVC缓存技术

    一.MVC缓存简介 缓存是将信息(数据或页面)放在内存中以避免频繁的数据库存储或执行整个页面的生命周期,直到缓存的信息过期或依赖变更才再次从数据库中读取数据或重新执行页面的生命周期.在系统优化过程中, ...

  10. 【Path Sum II】cpp

    题目: Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the give ...