C語言問題之穿越雷區

2021-08-11 18:20:57 字數 1015 閱讀 6983

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

某坦克需要從a區到b區去(a,b區本身是安全去,其它區都標了正號或負號分別表示正負能量輻射區。

例如:a + - + -

b + - + -

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

資料格式要求:

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

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

a, b都只能出現一次。

輸出乙個整數,表示坦克從a到b的最少步數。如果沒有方案則輸出-1.

#include

#include

#include

#define max 100

int w ;//方陣大小

int bx, by, ax, ay;//ab座標

char map[max][max];//儲存地圖

int path[max][2];//儲存路徑

int min=0,a=1;//儲存最小步數

int checkpath(int x,int y,int n)//檢查是不是繞圈

path[n+1][0]=x;

path[n+1][1]=y;

return 1;

}void fun(int x, int y, int n, int d)//開始走

printf("\n");

if(a==1)

else min=min<=n?min:n;

} else

}min=-1;}}

char getmap()//輸入地圖

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

}putchar('\n');

}if (a == 1 && b == 1)

return 1;

else

return 0;

}int main()

return 0;

}

藍橋杯之穿越雷區 BFS

本題為2015年第六屆藍橋杯c語言a組試題,第4題。考點 廣度優先搜尋 bfs 廣搜一般用來解決 最短 最少 問題,需用到佇列。已知的地圖是乙個方陣,上面用字母標出了a,b區,其它區都標了正號或負號分別表示正負能量輻射區。例如 a b 坦克車只能水平或垂直方向上移動到相鄰的區。資料格式要求 輸入第一...

演算法之穿越沙漠 獄吏問題

一輛吉普車來到1000km寬的沙漠邊沿。吉普車的耗油量為1l km,油量為500l。顯然,吉普車必須用自身油箱中的油在沙漠中設幾個臨時 加油點,否則是通不過沙漠的。假設在沙漠邊沿有充足的汽油可供使用,那麼吉普車應在哪些地方 建多大的臨的加油點,才能以最少的油耗穿過這塊沙漠?從這個題目來看,這是乙個極...

螺旋佇列問題之c語言

下面是乙個螺旋佇列 73 74 75 76 77 78 79 80 8172 43 44 45 46 47 48 4950 71 42 21 22 23 24 2526 51 70 41 20 7 8 910 27 52 69 40 19 6 1 2 11 28 53 68 39 18 5 4 3 ...