奇偶性剪枝

2021-09-11 07:16:29 字數 1327 閱讀 1322

我們先來看一道題目:

有乙個n x m大小的迷宮。其中字元』s』表示起點,字元』d』表示出口,字元』x』表示牆壁,字元,. '表示平地。你需要從』s』出發走到』d』,每次只能向上下左右相鄰的位置移動,並且不能走出地圖,也不能走進牆壁。

每次移動消耗1時間,走過路都會塌陷,因此不能走回頭路或者原地不動。現在已知出口的大門會在t時間開啟,判斷在0時間從起點出發能否逃離迷宮。

如上圖所示,將n x m的網格染成黑白兩色。我們記每個格仔的行數和列數之和為x,如果x為偶數,那麼格仔就是白色,反之奇數時為黑色。容易發現相鄰的兩個格仔的顏色肯定不一樣,也就是說每走一步顏色都會不一樣。更普遍的結論是:走奇數步會改變顏色,走偶數步顏色不變。

那麼如果起點和終點的顏色一樣,而t是奇數的話,就不可能逃離迷宮。同理,如果起點和終點的顏色不一樣,而t是偶數的話,也不能逃離迷宮。遇到這兩種情況時,就不用進行dfs了,直接輸出"no"。

這樣的剪枝就是奇偶性剪枝,本質上也屬於可行性剪枝。

實現**:

逃離迷宮(奇偶性剪枝)

有乙個n m大小的迷宮。其中字元 表示 起點,字元 d 表示出口,字元 x 表示牆壁。字元 表示空地,從 s 出發走到 d 每次只能向上下左右相鄰的位置移動,並且不能 走出地圖,也不能走進牆壁。每次移動消耗1時間,走過的路都會塌陷,因此不能走回頭路或者原地不動。現在已知出口的大門會在t時間開啟,從起...

1085 判斷奇偶性

判斷奇偶性 time limit 1000ms memory limit 65536k total submit 128 accepted 58 description 計算乙個無符號整數x的二進位制中1的個數是奇數還是偶數。input 多組測試資料。每組測試資料報括乙個無符號整數n 0 n 2 3...

HDOJ1010深搜 數學奇偶性剪枝

1010標準搜尋題,不過一開始很容易把題目看錯 易錯的理解 廣搜,在t秒之內從起點走到終點即可。純模版題 正確的理解 深搜,每個點在只能去一次的情況下,而且不能停留只能經過 這就要求我們把所有的路徑遍歷 方法 深搜 數學奇偶性剪枝 效率 578ms include include include i...