杭電1175 連連看 簡單的廣搜

2021-07-02 00:04:24 字數 711 閱讀 7256

這一題,做了好久,終於ac了,感覺題目有點坑,唉,題目不是很難,就是坑!!~~

找乙個錯誤,找了半天,後來才看到是變數用錯了!!~

題目中的b陣列是標記陣列。

#include #include #include using namespace std;

#define inf 1000000

int xy[4][2] = , , , };

int m, n;

int x1, x2, y1, y2;

int a[1005][1005], b[1005][1005];

class data

;int bfs()

else if(temp.dir == k)

else

if(te.x >= 1 && te.x <= m && te.y >= 1 && te.y <= n && te.k <= 2 && te.k <= b[te.x][te.y]) //判斷是否符合

}} }

return 0;

}int main()

scanf("%d", &num);

while(num--)

if(bfs())

printf("yes\n");

else

printf("no\n");

} }return 0;

}

hdu 1175 連連看(深搜)

題意 判斷兩個位置的圖案能否消除 存在不超過兩次拐彎的連線 解題過程 1 一開始開vis記錄已走過的位置,每個位置只能走一次。這樣明顯不行,因為一些拐彎超過兩次的路線會與正確的路線重合,那麼正確的路線就行不通了。2 跳出條件設定的地方錯了,導致暴棧。1 include 2 include 3 def...

搜尋 HDU1175 連連看

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

hdoj 1175 連連看 dfs 剪枝

題目大意 題目給出一副連連看的圖形,其中0代表沒有物品,其餘數字代表該位置的物品,規定,每次消除所經過的路徑不能超過兩次專向。另外,不能在圖外進行轉向。問,對於q個詢問,是否能夠消除。每乙個詢問都是對於初始圖而言的,解題思路 dfs 剪枝。其實沒什麼好說的,有幾個要注意的地方,第乙個是判重,第二個是...