hdu1010迷宮搜尋 奇偶剪枝

2021-08-16 09:24:42 字數 875 閱讀 4943

n m t

4 4 5 s為起點,能否恰好t步走到d,x是牆,

s.x. 直接搜尋超時,根據曼哈頓距離可以排除一些情況,

..x. 易知起點到終點的最短距離為兩點曼哈頓距離,

..xd 則若計算的距離大於最短距離,距離之差相當於

…. 走完最短距離又出去走了一段又回來,一定是偶數

no3 4 5

s.x.

..x.

…d 0 0 0

yes

#include 

#include

#include

#include

#include

using

namespace

std;

char

map[10][10];

int visited[10][10];

int f[4][2]=;

int n,m,t,a,b,x,y,flag;

void dfs(int x,int y,int ans)

if(ans>=t)

return;

if(map[x][y]!='x')}}

}int main()

}if(abs(x-a)+abs(y-b)>t || (t-abs(x-a)-abs(y-b))%2==1)

memset(visited,0,sizeof(visited));

visited[x][y]=1;

flag=0;

dfs(x,y,0);

if(flag==1)

cout

<<"yes"

cout

<<"no"

0;}

HDU1010 奇偶剪枝 DFS

第一次做剪枝的題目,剪枝,說實話研究的時間不短。好像沒什麼實質性的進展,遇到題目。絕對有會無從下手的感覺,剪枝越來越神奇了。hdu1010一道剪枝的經典題目,自己當初想用bfs過。提交了10幾遍wa,後來查了是剪枝最終死心了 ps 第一次寫剪枝題目,用了乙個模擬地圖來做奇偶性的判定條件進行剪枝,大牛...

HDU1010 奇偶剪枝 dfs)

the doggie found a bone in an ancient maze,which fascinated him a lot.however,when he picked it up,the maze began to shake,and the doggie could feel t...

dfs奇偶剪枝 HDU 1010

題意 問小狗是否能在第t秒 走t步 從s點到達d點 思路 很明顯的一道dfs題目,但是我們這裡需要採用剪枝減少不必要的路,另外這裡的地圖是字元,我們輸入需要注意吸收換行符 另外如果找到了答案,我們用全域性變數把它標記,只要它找到了答案,後面的操作不用進行 include include includ...