麻將遊戲
time limit:10000ms memory limit:65536k
total submit:205 accepted:77
case time limit:1000ms
description
在一種"麻將"遊戲中,遊戲是在乙個有w*h格仔的矩形平板上進行的。每個格仔可以放置乙個麻將牌,也可以不放(如圖所示)。玩家的目標是將平板上的所有可通過一條路徑相連的兩張相同的麻將牌,從平板上移去。最後如果能將所有牌移出平板,則算過關。
這個遊戲中的乙個關鍵問題是:兩張牌之間是否可以被一條路徑所連線,該路徑滿足以下兩個特性:
1. 它由若干條線段組成,每條線段要麼是水平方向,要麼是垂直方向。
2. 這條路徑不能橫穿任何乙個麻將牌 (但允許路徑暫時離開平板)。
這是乙個例子:
在(1,3)的牌和在(4, 4)的牌可以被連線。(2, 3)和(3, 4)不能被連線。
你的任務是編乙個程式,檢測兩張牌是否能被一條符合以上規定的路徑所連線。
input
輸入檔案的第一行有兩個整數w,h (1<=w,h<=75),表示平板的寬和高。接下來h行描述平板資訊,每行包含w個字元,如果某格仔有一張牌,則這個格仔上有個'x',否則是乙個空格。平板上最左上角格仔的座標為(1,1),最右下角格仔的座標為(w,h)。接下來的若干行,每行有四個數x1, y1, x2, y2 ,且滿足1<=x1,x2<=w,1<=y1,y2<=h,表示兩張牌的座標(這兩張牌的座標總是不同的)。如果出現連續四個0,則表示輸入結束。
output
輸出檔案中,對於每一對牌輸出佔一行,為連線這一對牌的路徑最少包含的線段數。如果不存在路徑則輸出0。
sample input
5 4sample output4***xx
x x
*** x
***
2 3 5 3
1 3 4 4
2 3 3 4
0 0 0 0
3 0
☞題解☜
SSL P1786 麻將遊戲
尋求最短路徑,但可越出平板 暫時性 相對其他的題目來說比較難,但只要處理好一些細節後,便會從複雜到簡單。我絕對不會說出ta是最小轉彎的 公升級版!include include include include define ll long long using namespace std inlin...
SSL1786 麻將遊戲
在一種 麻將 遊戲中,遊戲是在乙個有w h格仔的矩形平板上進行的。每個格仔可以放置乙個麻將牌,也可以不放 如圖所示 玩家的目標是將平板上的所有可通過一條路徑相連的兩張相同的麻將牌,從平板上移去。最後如果能將所有牌移出平板,則算過關。這個遊戲中的乙個關鍵問題是 兩張牌之間是否可以被一條路徑所連線,該路...
SSL 1786麻將遊戲
time limit 1000ms memory limit 65536k 在一種 麻將 遊戲中,遊戲是在乙個有w h格仔的矩形平板上進行的。每個格仔可以放置乙個麻將牌,也可以不放 如圖所示 玩家的目標是將平板上的所有可通過一條路徑相連的兩張相同的麻將牌,從平板上移去。最後如果能將所有牌移出平板,則...