現在簡化問題。將地圖設定成乙個由100公尺*100公尺的畫素塊組成的二維平面區域。如果乙個方塊內有單車,則畫素塊顯示為字元「x」;如果此方塊內是可以通行的路,則顯示為「.」;再如果方塊是建築物,則顯示為「*」,建築物不能通行。
小明在地圖上的位置顯示為「o」,可以朝,「上」、「下」、「左」,「右」,「左上」,「左下」,「右上」,「右下」八個方向走。下圖所示為乙個小明站在畫素方塊o,如果小明向右走到x,則走100公尺;如果向右上走,則走141公尺(不需要開方)。
假設小明和單車都在方塊的**。現在給出 t 幅根據以上規則建立的地圖,地圖行數和列數分別為 n 和 m,請分別估算小明要走多少公尺才能到最近的單車?
如果計算中出現小數,那麼直接捨棄。最後的輸出的結果為整型。
給出的地圖中至少有一輛單車,如果最終無法到達單車的位置,輸出-1。
第1行,t,表示下面有 t 組測試資料
對於每組測試資料
(1)第1行,n和m ,表示地圖的大小;
(2)第2行開始,給出具體的地圖 。
t行資料
每行1個整數,表示問題的解
2
3 8.....x..
.o...x..
........
8 10
.***......
.***......
.***..x...
..........
.....*****
..o..*****
.......x..
...*******
400
523
#includeusing namespace std;
typedef long long ll;
const int maxn = (int)1e2+2;
int mov[8][2]=,,,,,,,};
typedef pair< int , pair> piii;
typedef struct
}node;
bool vis[maxn][maxn];
int n,m;
inline bool able(int x, int y)
}return 0;
}void solve()
int ans = bfs(ox,oy,mp);
cout
while(t--) solve();
}
YOJ 共享單車
description 現在簡化問題。將地圖設定成乙個由100公尺100公尺的畫素塊組成的二維平面區域。如果乙個方塊內有單車,則畫素塊顯示為字元 x 如果此方塊內是可以通行的路,則顯示為 再如果方塊是建築物,則顯示為 建築物不能通行。小明在地圖上的位置顯示為 o 可以朝,上 下 左 右 左上 左下 ...
共享單車c
冷月老師每天上班從蘇州街地鐵站出來 都要思考很久是騎 去公司還是直接走過去 如果騎 則開鎖需要等 40s,已知冷老師騎 速度 4m s,走路速度 1.5m s.寫乙個程式幫助冷月老師判斷騎車快還是走路快.輸入地鐵到公司的距離,單位為公尺.如果騎車快,輸出 bicycle 如果走路快,輸出 walk ...
共享單車的討論
共享單車的利弊 我的觀點 方便 方便 還是方便 停放 停放 還是要停放 亂不 亂不 還是有點亂 管理 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫...