寒假Day18-搜索

 

 

 今天做了一些搜索的题目,感觉我又迷了,我好菜也。。

针对深搜:

为什么需要标记

记忆化搜索定义int dfs(),不需要标记

一般搜索定义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; 否则会超时。

 

 

vice versa 反之亦然 vice邪恶的

 

你可能感兴趣的:(寒假Day18-搜索)