搜尋 坦克戰車

2021-08-17 14:22:59 字數 1148 閱讀 3122

題目描述:

x星的坦克戰車很奇怪,它必須交替地穿越正能量輻射區和負能量輻射區才能保持正常運轉,否則將報廢。

某坦克需要從a區到b區去(a,b區本身是安全區,沒有正能量或負能量特徵),怎樣走才能路徑最短?

已知的地圖是乙個方陣,上面用字母標出了a,b區,其它區都標了正號或負號分別表示正負能量輻射區。

例如:

a + - + -

- + - - +

- + + + -

+ - + - +

b + - + -

坦克車只能水平或垂直方向上移動到相鄰的區。

輸入:輸入第一行是乙個整數n,表示方陣的大小, 4<=n<100

接下來是n行,每行有n個資料,可能是a,b,+,-中的某乙個,中間用空格分開。

a,b都只出現一次。

輸出:要求輸出乙個整數,表示坦克從a區到b區的最少移動步數。

如果沒有方案,則輸出-1

#include#include#define inf  1<<30 

char map[105][105];

int visited[105][105];

int dir[4][2]=;//表示上右下左移動的方位

int min=inf;

int n,x2,y2;

void dfs(int x,int y ,int t ,char ch);

int n;

int vis[105][105];

int min=inf;

int f_x,f_y;

void dfs(int x,int y,int t,char ch)

for(int k=0;k<4;k++)

} }

int main()

else if(map[i][j]=='b')

} }

vis[s_x][s_y]=1;

dfs(s_x,s_y,0,map[s_x][s_y]);

if(min==inf)

printf("-1");

else

printf("%d\n",min);

return 0;

}

坦克大戰 坦克類

坦克類 class tank public void setx int x public int gety public void sety int y y表示坦克的縱座標 int y 0 public tank int x,int y 定義坦克方向 0表示向上,1右,2下,3左 int direc...

nyoj284 坦克大戰 搜尋 bfs

樣例輸入 3 4ybeb eere sste 0 0樣例輸出 8 題意 從y字母的位置到t字母的位置最少trun了幾次 遇到r,s不能走,遇到b的話要turn 2次。坑點在必須用優先佇列,hiphop man 為什麼?真的不知道 不喜歡你的style kkk include include incl...

nyoj 284 坦克大戰 簡單搜尋

題意 在乙個給定圖中,鐵牆,河流不可走,磚牆走的話,多花費時間1,問從起點到終點至少需要多少時間。思路 簡單廣搜 如下 include stdio.h nyoj 284 坦克大戰 簡單搜尋 include string.h include queue using namespace std defi...