BFS 連連看遊戲 乙個讓人感覺很複雜的BFS

2021-06-07 21:43:33 字數 1699 閱讀 1429

時間限制: 2 sec  

記憶體限制: 5 mb

提交: 12  

解決: 3 [

提交][

狀態][

討論版]

大家都玩過連連看吧!今天我們玩乙個類似的遊戲。在乙個由10*10個小方格組成的矩形裡有n(n<=10)對字元(它們是大寫字元中的前n個)。矩形裡有些位置是可以從上面走過,有些則不能。能走過的位置用'.'標識,不能的用'#'標識。如果2個相同字元是連通的(從乙個字元能走到另乙個字元,注意走的時候只能向上、下、左、右走。某個位置是有其他字元時,這個位置是不能走的),那麼這對字元能夠進行配對。如果將這對字元配對,這對字元將從這個矩形裡消除,也就是說這2個字元所在的位置對於其他字元而言變成能走動了。

現在的問題是:請你決定這些字元的配對順序(只有能配對才能進行配對),使得n對字元最後都配對成功。

先給出乙個正整數t(t<=10),表示有t組測試資料。

每組測試資料有10行組成,每行有10個字元。這些字元只能是'.','#',或者是大寫字元中的前n個。每組測試資料中不超過10對字元。

如果能夠使每組測試資料中的n對字元配對成功,輸出配對的順序。如果有多種配對成功的順序,輸出字典序最小的那組。

否則輸出"my god!"。

2abf.......

ce........

d.........

..........

..........

..........

..........

.........d

........ec

.......fba

abf.......

ce........

d.........

..........

..........

.........#

........#d

.........#

........ec

.......fba

dcabef

my god!

參考了下老師的** 其實我一直的思路也都是這樣的    而且還動手寫了 但是都是寫到一半的時候放棄了 因為心裡畏懼 害怕超時

還害怕複雜   以後做乙個題目的時候要是有一定的把握就不要畏懼 不要婆婆媽媽的 大大方方的把**敲出來 乾掉它

#include

#include

#include

using namespace std;

int step[4][2]=;

char map[11][11];

int used[11][11];

char ans[20];

struct haha

}q,temp;

int bfs(int x,int y)

q.x=x1;

q.y=y1;

q.step=temp.step+1;

que.push(q);

used[x1][y1]=1;}}

}return 0;

}int main()

else end2=1;}}

}if(end==0) break;

end=0;

}for(i=0;i<10;i++)

for(j=0;j<10;j++)

}if(flag)  printf("my god!\n");

else

}}return 0;

}

乙個連連看遊戲的通路檢測演算法

在看了一篇關於連連看通路檢測算發的啟發下篇寫的,列出 如下 連連看通路檢測演算法 include using namespace std include int main 設定選中座標 要改進 要檢測位置是否相同,值是否相同 short set1x 4,set1y 1,set2x 2,set2y 3...

第乙個bfs題目 hdu1175連連看

include include include using namespace std define maxn 1005 用於儲存點資訊的結構 typedef struct node int x,y 座標資訊 unsigned short change 轉彎次數資訊 int dic 點的方向資訊 n...

用Quick Cocos2dx做乙個連連看(二)

今天完成了以下內容 1 成對生成spriteitem 2 重排介面製作完成 3 spriteitem的選擇邏輯 主要 如下 1 function mainscene onenter 2local item 3local item0 4local temptype 1 5for i 1,32 do6 ...