HDU 1175 廣度優先搜尋 BFS

2021-12-29 22:24:15 字數 697 閱讀 2348

題意:能不能將兩個位置的棋子(非0)消去,並不能超過兩次改變方向.

題型:廣度優先搜尋(bfs)

思路:將其中的乙個點作為起點,向外搜尋,看能否在限制條件之內找到另乙個點

個人總結:我做的時候沒考慮完全,所以沒有用陣列(**中的num)儲存到達該點時轉向最少次數,所以一直wa了!

[cpp] 

#include  

#include  

#include  

#include  

#include  

#include  

#include  

#include  

#include  

using namespace std; 

const int inf=10000000; 

struct nodest,rt,ne; 

int n,m; 

int map[1005][1005]; 

int num[1005][1005]; 

int dx[4]=; 

int dy[4]=; 

bool bfs(int x1,int y1,int x2,int y2) 

} } 

return false; }  

int main() 

} return 0; 

HDU1175 搜尋 剪枝

題目鏈結 連連看 題目大意 給一張n m大小的圖,問查詢的兩個點k1與k2之間能不能消掉,消掉的條件是通過走沒有東西的路徑拐彎不超過兩次到達目標點。0表示沒有東西,1的物品表示相應的東西 並且不能夠走外圍。解題思路 從起點向終點搜尋可行解,有乙個重要的剪枝是 當無轉彎的次數時,還沒到達與終點相同的行...

HDU1175連連看 廣度優先搜尋BFS

1 include 2 include 3 include 4 include 5 include 6 include 7 include 8 include 9 include 10 include 11 include 12 include 13 include 14 using namespa...

搜尋 HDU1175 連連看

題目 分析 這道題看到的第一反應應該就是bfs或者dfs,裸的dfs bfs顯然會tle,所以我就想用a 不過好像並不好寫啟發函式。列舉步數不行,就列舉邊吧。因為允許有兩次轉折,所以最多有三條邊列舉中間的一條邊,然後進行check,這道題只用了兩個for迴圈就ac了。include include ...