您的位置:首页 > 其它

搜索时的剪枝

2016-11-05 11:04 218 查看
一:普通剪枝(可行性剪枝)

搜索时加入判断条件,越界没越界,走没走过,已经找到符合条件的路了吗......

二:从起点到终点的最短路径的题(最优化剪枝)

走到一点,可判断是不是已经大于当前最短路径了,是不是此时的路径长度+到此时到终点最短距离已经大于当前最短路径了......

三:从起点到终点的路径长度可否等于一个给出的距离,如HDU1010

不光要判断是否已经找到符合条件的路了,还要进行奇偶性剪枝(可行性剪枝)



代码中T-step为剩余的步数或者说时间

dis1+dis2为此点到终点最小剩余步数

从一个点到另一个点的步数可以不一样,但奇偶性一样

如果最短走偶数步,说明从这里到终点一定为偶数步,如果剩余的的时间是奇数,不可行

如果最短走奇数步,说明从这里到终点一定为奇数步,如果剩余的的时间是偶数,不可行

轻易得出:

奇数-偶数 = 奇数,偶数-奇数 = 奇数

奇数-奇数= 偶数,偶数-偶数=偶数

所以T-step-(dis1+dis2)为偶数才有机会满足规定时间到终点
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: