寒假Day18-搜索
今天做了一些搜索的题目,感觉我又迷了,我好菜也。。
针对深搜:
为什么需要标记
记忆化搜索定义int dfs(),不需要标记,book数组只用于记录次数/步数等,一旦搜到走过的book[x][y],就直接返回,不用再往下搜索,其实就是有部分的动态规划的思想在。
一般搜索定义void dfs(),需要book数组进行标记,搜索过后需要记得取消标记
深搜剪枝:
奇偶剪枝:HDU1010
给出起点、终点、T,问小狗从起点走到终点能否恰好为T秒。
这题限定了步数,(未必是bfs啊),利用奇偶剪枝才不会超时
没有进行搜索的时候先判断全局T-[abs(ex-sx)+abs(ey-sy)]结果为非偶数(奇数),则无法在t步恰好到达;
搜索的时候T-step-[abs(ex-sx)+abs(ey-sy)]进行判断
当该值小于零或者是奇数的时候就可以return了。(不要忘了小于零)
写了有一道题目,找到终点之后,flag进行标记,然后还需要写if(flag) return; 否则会超时。
分类:
搜索
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」