201312 5 試題名稱 I m stuck

2021-08-25 05:39:41 字數 1994 閱讀 2130

給定乙個r行c列的地圖,地圖的每乙個方格可能是'#', '+', '-', '|', '.', 's', 't'七個字元中的乙個,分別表示如下意思:

'#': 任何時候玩家都不能移動到此方格;

'+': 當玩家到達這一方格後,下一步可以向上下左右四個方向相鄰的任意乙個非'#'方格移動一格;

'-': 當玩家到達這一方格後,下一步可以向左右兩個方向相鄰的乙個非'#'方格移動一格;

'|': 當玩家到達這一方格後,下一步可以向上下兩個方向相鄰的乙個非'#'方格移動一格;

'.': 當玩家到達這一方格後,下一步只能向下移動一格。如果下面相鄰的方格為'#',則玩家不能再移動;

's': 玩家的初始位置,地圖中只會有乙個初始位置。玩家到達這一方格後,下一步可以向上下左右四個方向相鄰的任意乙個非'#'方格移動一格;

't': 玩家的目標位置,地圖中只會有乙個目標位置。玩家到達這一方格後,可以選擇完成任務,也可以選擇不完成任務繼續移動。如果繼續移動下一步可以向上下左右四個方向相鄰的任意乙個非'#'方格移動一格。

此外,玩家不能移動出地圖。

請找出滿足下面兩個性質的方格個數:

1. 玩家可以從初始位置移動到此方格;

2. 玩家可以從此方格移動到目標位置。

輸入格式

輸入的第一行包括兩個整數r 和c,分別表示地圖的行和列數。(1 ≤ r, c ≤ 50)。

接下來的r行每行都包含c個字元。它們表示地圖的格仔。地圖上恰好有乙個's'和乙個't'。

輸出格式

如果玩家在初始位置就已經不能到達終點了,就輸出「i'm stuck!」(不含雙引號)。否則的話,輸出滿足性質的方格的個數。

樣例輸入

5 5--+-+

..|#.

..|##

s-+-t

####.

樣例輸出

樣例說明

如果把滿足性質的方格在地圖上用'x'標記出來的話,地圖如下所示:

--+-+

..|#x

..|##

s-+-t

####x

正著一遍bfs反著一遍bfs!

#include#include#includeusing namespace std;

int n,m;

bool reached1[55][55];

bool reached2[55][55];

char a[55][55];

int num=0;

void bfs1(int x,int y)

for(int i=0;i=0&&nx=0&&nydir;

//shift+tab縮退

//倒著走不跟正著走一樣,

//有很多需要仔細分析的地方,不是說簡單的自以為是 這麼簡單的!!!!!!!

//又**的把n 和m忘記了,別傻了!!!

dir.push_back(-1);

dir.push_back(0);

dir.push_back(1);

dir.push_back(0);

dir.push_back(0);

dir.push_back(-1);

dir.push_back(0);

dir.push_back(1);

for(int i=0;i=0&&nx=0&&ny=0&&nx=0&&ny=0&&nx=0&&ny>n>>m;

int x1,y1,x2,y2;

for(int i=0;i>a[i][j];

if(a[i][j]=='s')

if(a[i][j]=='t')

} }bfs1(x1,y1);

bfs2(x2,y2);

// for(int i=0;i// }

// for(int i=0;i// }

// if(!reached1[x2][y2])

for(int i=0;i} }

cout

}

201709 5 試題名稱 除法

小蔥喜歡除法,所以他給了你n個數a1,a2,an,並且希望你執行m次操作,每次操作可能有以下兩種 給你三個數l,r,v,你需要將al,al 1,ar之間所有v的倍數除以v。給你兩個數l,r,你需要回答al al 1 ar的值是多少。輸入格式 第一行兩個整數n,m,代表數的個數和操作的次數。接下來一行...

ccf 201712 2 試題名稱 遊戲

問題描述 有n個小朋友圍成一圈玩遊戲,小朋友從1至n編號,2號小朋友坐在1號小朋友的順時針方向,3號小朋友坐在2號小朋友的順時針方向,1號小朋友坐在n號小朋友的順時針方向。遊戲開始,從1號小朋友開始順時針報數,接下來每個小朋友的報數是上乙個小朋友報的數加1。若乙個小朋友報的數為k的倍數或其末位數 即...

201512 2 試題名稱 消除類遊戲

問題描述 消除類遊戲是深受大眾歡迎的一種遊戲,遊戲在乙個包含有n行m列的遊戲棋盤上進行,棋盤的每一行每一列的方格上放著乙個有顏色的棋子,當一行或一列上有連續三個或更多的相同顏色的棋子時,這些棋子都被消除。當有多處可以被消除時,這些地方的棋子將同時被消除。現在給你乙個n行m列的棋盤,棋盤中的每乙個方格...