关于===奇偶性剪枝====
来源:互联网 发布:红色警戒3mac版下载 编辑:程序博客网 时间:2024/06/04 23:50
关于奇偶剪枝
首先举个例子,有如下4*4的迷宫,'.'为可走路段,'X'为障碍不可通过
S...
....
....
...D
从S到D的最短距离为两点横坐标差的绝对值+两点纵坐标差的绝对值 = abs(Sx - Dx) + abs(Sy - Dy) = 6,这个应该是显而易见的。
遇到有障碍的时候呢
S.XX
X.XX
...X
...D
你会发现不管你怎么绕路,最后从S到达D的距离都是最短距离+一个偶数,这个是可以证明的
而我们知道:
奇数 + 偶数 = 奇数
偶数 + 偶数 = 偶数
因此不管有多少障碍,不管绕多少路,只要能到达目的地,走过的距离必然是跟最短距离的奇偶性是一致的。
所以如果我们知道从S到D的最短距离为奇数,那么当且仅当给定的步数T为奇数时,才有可能走到。如果给定的T的奇偶性与最短距离的奇偶性不一致,那么我们就可以直接判定这条路线永远不可达了。
这里还有个小技巧,我们可以使用按位与运算来简化奇偶性的判断。我们知道1的二进制是1,而奇数的二进制最后一位一定是1,而偶数的二进制最后一位一定是0。所以如果数字&1的结果为1,那么数字为奇数,反之为偶数。
==============================================================
原文链接:https://www.slyar.com/blog/depth-first-search-even-odd-pruning.html
==============================================================
首先举个例子,有如下4*4的迷宫,'.'为可走路段,'X'为障碍不可通过
S...
....
....
...D
从S到D的最短距离为两点横坐标差的绝对值+两点纵坐标差的绝对值 = abs(Sx - Dx) + abs(Sy - Dy) = 6,这个应该是显而易见的。
遇到有障碍的时候呢
S.XX
X.XX
...X
...D
你会发现不管你怎么绕路,最后从S到达D的距离都是最短距离+一个偶数,这个是可以证明的
而我们知道:
奇数 + 偶数 = 奇数
偶数 + 偶数 = 偶数
因此不管有多少障碍,不管绕多少路,只要能到达目的地,走过的距离必然是跟最短距离的奇偶性是一致的。
所以如果我们知道从S到D的最短距离为奇数,那么当且仅当给定的步数T为奇数时,才有可能走到。如果给定的T的奇偶性与最短距离的奇偶性不一致,那么我们就可以直接判定这条路线永远不可达了。
这里还有个小技巧,我们可以使用按位与运算来简化奇偶性的判断。我们知道1的二进制是1,而奇数的二进制最后一位一定是1,而偶数的二进制最后一位一定是0。所以如果数字&1的结果为1,那么数字为奇数,反之为偶数。
==============================================================
原文链接:https://www.slyar.com/blog/depth-first-search-even-odd-pruning.html
==============================================================
0 0
- 关于===奇偶性剪枝====
- 奇偶性剪枝
- POJ1190===搜索+剪枝===生日蛋糕
- 数独:深搜+剪枝 == 递归+回溯
- 八皇后问题(排列+递归+剪枝=回溯法)
- DFS之奇偶性剪枝
- zoj 2110 奇偶性剪枝
- HDU1010(奇偶性剪枝)
- hdu--1010--DFS--奇偶性剪枝
- HDOJ1010深搜+数学奇偶性剪枝
- hdu 1010 dfs+奇偶性剪枝
- hdu 1010 dfs+奇偶性剪枝
- HDU 1010 Bone 奇偶性剪枝
- Herbs Gathering 大背包 (n<=100 W<=10^9) 深搜+最优化剪枝
- new hdoj 1010(奇偶性剪枝)
- hdu 1010 回溯加奇偶性剪枝
- 奇偶性剪枝--hdu1010 Tempter of the Bone
- 埃及分数问题(剪枝+迭代加深搜索)=>算法竞赛入门经典(第二版)第七章
- 《英雄去战斗》格斗类手游开发
- HTTP 头参考
- json_encode 的第二个参数详解
- Ubuntu配置SSH免密码登陆
- JVM调优总结 -Xms -Xmx -Xmn -Xss
- 关于===奇偶性剪枝====
- 排序算法之冒泡排序
- 设计模式六大原则
- win7下使用easyBCD安装ubuntu双系统
- 互斥锁--pthread_mutex_t
- FastJson源码解析:序列化(1.1.45.android)
- Linux基础——VIM编辑器、磁盘管理、用户管理
- SCP指令错误解决方法
- Stars--升级版 hdu2642