记忆化搜索 dp(dfs)-帮助Jimmy POJ--1661

POJ 1661 Help Jimmy【题解报告|DFS|DP】 题目大意 场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。 Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开始继续下落。Jimmy每次下落的高度不能超过MAX米,不然就会摔死,游戏也会结束。 设计一个程序,计算Jimmy到底地面时可能的最早时间。 DFS 这道题,爆搜显然是能找到正确答案的,我们从上往下跳,落到一个平台上的时候, 阅读详情

不知道为什么编译器老说错。。。。

int n,x,y,maxx;
struct point{
    int l,r,h;
    bool friend operator<(point a,point b){
        return a.h<b.h;
    }
};
point node[mxn];
int dp[mxn][2];
int  dfs(int cur,int x,int time){
    if(node[cur].h==0)return time;
    if(dp[cur][0]!=inf||dp[cur][1]!=inf)return min(dp[cur][0],dp[cur][1]);
    int up=lower_bound(node,node+1+n,node[cur].h)-node;
    int down=lower_bound(node,node+1+n,node[cur].h-maxx)-node;
    int flagl=0,flagr=0;
    for(int i=up;i>=down;--i){
        if(node[cur].h-node[i].h>maxx)continue;
        if(node[cur].l<=node[i].l&&node[cur].l<=node[i].r&&!flagl){
           dp[cur][0]=min(dp[cur][0],dfs(i,node[cur].l,time+node[cur].h-node[cur].h+x-node[cur].l)); flagl=1;
        }
        if(node[cur].r<=node[i].l&&node[cur].r<=node[i].r&&!flagr){
            dp[cur][1]=min(dp[cur][1],dfs(i,node[cur].r,time+node[cur].h-node[cur].h+abs(x-node[cur].r)));flagr=1;
        }
    }
    return min(dp[cur][0],dp[cur][1]);
}
int main(){
    int T;sf("%d",&T);
    while(T--){
        sf("%d%d%d%d",&n,&x,&y,&maxx);
        mem(dp,inf);
        node[0].l=node[0].r=x;node[0].h=y;
        rep(i,1,n){
            sf("%d%d%d",&node[i].l,&node[i].r,&node[i].h);
        }
        node[n+1].l=0,node[n+1].r=0,node[n+1].h=0;
        sort(node,node+1+n);
        dfs(n+1,x,0);
        pf("%d\n",dp[0][0]);
    }
}


poj1661 Help Jimmy(记忆化搜索) Help JimmyTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 13305 Accepted: 4419Description"Help Jimmy" 是在下图所示的场景上完成的游戏。 场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。 Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速... 阅读详情

相关推荐

关于石墨烯费米能级和偏置电压之间的关系问题

石墨烯费米能级与电压的关系问题

qq_37946542的博客 3514

帮助Jimmy

//帮助Jimmy #include<stdio.h> #include<memory.h> #include<stdlib.h> #define MAX_N 1000 #define INFINITE 1000000 int t,n,x,y,max; struct Platform{ int Lx,Rx,h; }; Platform aPlatfo...

weixin_30823833的博客 180

告别零散脚本:用Playwright+Pytest+Yaml+Allure搭建可维护的UI自动化项目

UI自动化测试是软件质量保障的关键环节,其核心在于模拟用户操作,对Web应用界面进行功能验证。传统的脚本堆砌方式常因代码耦合度高、维护成本大而难以为继。工程化解决方案通过分离关注点,将测试逻辑、数据和配置解耦,从而显著提升项目的可读性、可维护性和可扩展性。其技术价值在于构建可持续运行的自动化资产,而非一次性脚本。典型的应用场景包括Web应用的回归测试、兼容性测试及CI/CD流水线中的质量门禁。本文以Playwright、Pytest、Yaml和Allure为核心技术栈,详细阐述了如何从项目架构、页面对象模型

weixin_42529328的博客 299

poj-帮助 Jimmy

动态规划 Help Jimmy Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8214   Accepted: 2626 Description "Help Jimmy" 是在下图所示的场景上完成的游戏。  场景中包括多个长度和

Just do IT! 1323

游戏封包抓取实战:雷电模拟器+ProxyDroid+查尔斯3.93+WPE全流程解析

本文详细解析了使用雷电模拟器、ProxyDroid、查尔斯3.93和WPE进行游戏封包抓取的全流程实战。通过环境搭建、代理配置与工具协同,手把手教你抓取HTTP/HTTPS及原始Socket数据,涵盖从流量转向、证书安装到数据分析和常见问题排查,是学习游戏网络协议分析与安全测试的实用指南。

u8v9w0x1y的博客 445

【R语言】富集分析可视化代码(整理版)

分别介绍了如何使用DAVID在线分析工具对基因进行GO/KEGG功能富集分析、使用R ggplot包对获得的基因GO/KEGG功能富集结果进行可视化、使用R clusterProfiler包和R AnnotationHub包对基因进行GO/KEGG功能富集分析、OrgDb包制作以及结果可视化等。故,我重新整理了一波,并补充了可对多个分组的富集结果进行可视化以及富集结果绘制圈图等的代码。关注“在打豆豆的小潘学长”公众号,发送“富集分析3”获得完整代码包和演示数据。一、单组富集结果可视化。

weixin_54004950的博客 1万+

POJ 1661 Help Jimmy ——(记忆化搜索)

  典型的记忆化搜索问题,dfs一遍即可。但是不知道WA在哪里了= =,一直都没找出错误。因为思路是很简单的,肯定是哪里写挫了,因此不再继续追究了。   WA的代码如下,希望日后有一天能找出错误= =: ————————————————灵光一闪的分界线——————————————————   在写博客的时候突然灵光一闪,想到了错在哪里了= =。总的来说还是考虑问题不周导致的。AC代...

ddmxynl793173的博客 139

Allegro基本规则设置指导书之Spacing Region

当网络需要在Region中需要按照自身的规则匹配时,可以创建Region Class来匹配。Region也支持Class to Class规则,点击ok即可。Allegro基本规则设置指导书之Spacing Region。下面介绍基本规则设置指导书之Spacing Region。给创建好的Region 匹配一个规则。空白的地方创建一个Region。

weixin_54787054的博客 564

poj 1661 Help Jimmy(记忆化搜索)

题目链接:http://poj.org/problem?id=1661 一道还可以的记忆化搜索题,主要是要想到如何设dp,记忆化搜索是避免递归过程中的重复求值,所以要得到dp必须知道如何递归 由于这是个可以左右移动的所以递归过程肯定设计左右所以dp的一维为从左边下或者从右边下,而且和层数有关所以另一维为层数 于是便可以得到dp[count][flag],flag=1表示count层...

awow80285的博客 146

华为面试手撕真题【求1-n的最小公倍数】

求1-n的最小公倍数

MISAYAONE的博客 2万+

保研考研机试攻略:python笔记(4)

保研考研机试攻略:python笔记(4)二分法+最大公约数+最小公倍数+素数判断+幂次方mod方法+匹配问题+哈希算法+哈夫曼编码+二叉树

qq_63349644的博客 1097

【POJ - 1661】Help Jimmy(记忆化搜索,dp)

题干: 解题报告: AC代码1: #include&lt;cstdio&gt; #include&lt;algorithm&gt; #include&lt;iostream&gt; #include&lt;cstring&gt; using namespace std; const int INF = 0x3f3f3f3f; int n,x,y,maxx; int dp[100...

xuanweiace的博客 513

【法如faro】三维激光软件Scene2023数据处理(自动配准并转换坐标)流程

法如faro Scene2023数据处理(自动配准并转换坐标)的主要流程为:新建项目、导入数据、处理、自动注册、坐标系转换、模型导出立和面模型导出等。

智慧空间实验室 2383

100道动态规划——22 POJ 1661 帮助 Jimmy 记忆化搜索 状态定义 以及一个思维上的漏洞

好吧,这道题我交了第9次才A 我觉得想到动态规划不是一件很难的事情.....我在状态的定义上犯了一个错误 我一开始定义的状态是dp[i][j]表示坐标在i,j时的花费的最小时间,这就导致数组开不下,于是我就用了一个map来存 然后记忆化搜索当然就是记录4个值了i,j,当前下落的高度,以及是从哪个方向走过来的 就WA了4~5次....感觉这样行不通 然后就看了题解,发现应该把状态定义为dp

Sion 1166

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Help Jimmy POJ - 1661

点击打开链接 两种解法 一:记忆化搜索 写法其实很多 一个搜索题一般写法很多理清思路 各种边界处理好就行 不要一会觉得这样行 过一会觉得那样好 反而搞乱了思路 #include &lt;stdio.h&gt; #include &lt;cstring&gt; #include &lt;algorithm&gt; using namespace std; #defin...

sunyutian1998的博客 349

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

POJ 1661 Help Jimmy

题意中文题面,不解释分析dp[i][0]表示从上数第i层左边到达地面的最小时间,dp[i][1]为从右边的最小时间 先找到下落到的板,然后直接计算即可,记忆化搜索易编 代码#include<iostream> #include<algorithm> #include<cmath> #include<cstring> using namespace std; const int MAXN

Clear Dreamer 501

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

POJ 1661 Help Jimmy——树形dp

把端点看做节点,把时间看做边的权值建立状态转移树,然后记忆化搜索一遍即可,建树过程很麻烦,权当是个模拟题了、、、 #include #include #include #include #include #include using namespace std; typedef pair P; const int INF = 0x3f3f3f3f; const int maxn =

hao_zong_yin的博客 512

POJ - 1661 Help Jimmy(DP)

题目大意:中文题解题思路:因为是垂直下降,所以就可以将问题转变成从降落的平台到地面的最小时间 因为只能从平台的左边或者右边才可以离开平台,所以可以分别计算出从左边和从右边到达地面的最短时间,并记录#include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N = 2010; con

静静地码 467

POJ1661(KB12-M DP)

Help Jimmy Description "Help Jimmy" 是在下图所示的场景上完成的游戏。场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开始继...

weixin_30254435的博客 92

动态规划 Help Jimmy

POJ 1661 #include &lt;iostream&gt; #include &lt;algorithm&gt; using namespace std; const int NAN = 200000001; int t; int N; int X; int Y; int MAX; class Plat { public: int x1; ...

gaofen100 135

[kuangbin带你飞]专题十二 基础DP1

[kuangbin带你飞]专题十二 基础DP1 文章目录[kuangbin带你飞]专题十二 基础DP1Monkey and Banana[HDU - 1069 ](https://vjudge.net/problem/HDU-1069/origin)Doing Homework [HDU - 1074 ](https://vjudge.net/problem/HDU-1074/origin)免费馅饼 [HDU - 1176 ](https://vjudge.net/problem/HDU-1176/ori

qq_45572675的博客 345

动态规划专题:POJ 动态规划题目列表

POJ 动态规划题目列表 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276, 1322, 1414, 1456, 1458, 1609, 1644, 1664, 1690, 1699, 1740(博弈), 1742, 1887, 1926(马尔科夫矩阵,求平 衡), 1936,19

NOI2015的专栏 1632
上一篇: 区间dp POJ 3186
下一篇: DP两道关于递增非递增的题目
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值