1、少なくともINFは、あなたが戻って歩いてみようではないだろう。
2、typedefのペア<int型、int型>の使用は明確な、役に立たない権利を言いませんでした。
3、奇妙な。。
書式#include <iostreamの> の#include <キュー> の#include <ユーティリティ> 使用して 名前空間はstdを、 INT DX [] = { 1、 - 1、0、0 }。 int型 DY [] = { 0、0、1、 - 1 }。 整数 N、M、D [ 1005 ] [ 1005 ]、SX、SY、FX、FY。 チャー B [ 1005 ] [ 1005 ]。 const int型 INF = 1E6; typedefのペア < int型、int型 >P; キュー <P> QUE; Rの int型の答え。 INT BFS(int型のx、int型のY) { que.push(P(X、Y))。 D [X] [Y] = 0 ; 一方、(que.size()) { P = que.front()。 que.pop(); もし(p.first == FX && p.second ==年度)ブレーク。 以下のために(INT iが= 0 ; I <= 3 ; I ++ ) { int型 XX = p.first + DX [I]。 int型 YY = p.second +DY [I]; IF(XX> = 1 && YY> = 1!&& XX <= N - && YY <= M && B [XX] [YY] = ' #' && D [XX] [YY] = INF) { que.push(P( XX、YY))// 括弧内にある人々 、使用量がルック有する Dを[XX] [YY] = D [p.first] [p.second] + 1 ; } } } 戻りD [FX] [FY]; } int型のmain(){ CIN >> N- M; CIN >> SX SY >> >> FX FY。 以下のために(INT iが= 1 ; I <= N; I ++ ) 用(INT J = 1 ; J <= Mであり、j ++ ) CIN >> B [i]は[J]。 以下のために(INT iが= 1 ; I <= N I ++ ) のための(INT J = 1 ; J <= Mであり、j ++ ) Dを[I] [J] = INF。 答 = BFS(SX、SY)。 coutの <<答え<< てendl; }
4、それを次の時間を行います