時間限制:
3000 ms | 記憶體限制:
65535 kb
難度:4 描述
這有乙個迷宮,有0~8行和0~8列:
1,1,1,1,1,1,1,1,1
1,0,0,1,0,0,1,0,1
1,0,0,1,1,0,0,0,1
1,0,1,0,1,1,0,1,1
1,0,0,0,0,1,0,0,1
1,1,0,1,0,1,0,0,1
1,1,0,1,0,1,0,0,1
1,1,0,1,0,0,0,0,1
1,1,1,1,1,1,1,1,1
0表示道路,1表示牆。
現在輸入乙個道路的座標作為起點,再如輸入乙個道路的座標作為終點,問最少走幾步才能從起點到達終點?
(注:一步是指從一座標點走到其上下左右相鄰座標點,如:從(3,1)到(4,1)。)
輸入
第一行輸入乙個整數n(0
輸出輸出最少走幾步。
樣例輸入
23 1 5 7
3 1 6 7
樣例輸出
1211
#include #include #include #include using namespace std;
int ans[9][9]=,
, ,, ,
, ,, ,
};const int dir[4][2]=,,,};
int dp[9][9];
int m1,m2,m3,m4,s;
void dfs(int lhs, int rhs,int ***)
++***;
ans[lhs][rhs]=1;
for(int i=0;i<4;i++)
ans[lhs][rhs]=0;
}int main()
node;
const int ans[9][9]=,
, ,, ,
, ,, ,
};const int dir[4][2]=,,,};
int dp[9][9];
int visited[9][9];
node m3;
void bfs(node t)
} t=q.front();
q.pop(); }}
int main()
{ int n;
node m1;
cin>>n;
while(n--)
{ cin>>m1.lhs>>m1.rhs>>m3.lhs>>m3.rhs;
memset(dp,0,sizeof(dp));
memset(visited,0,sizeof(visited));
visited[m1.lhs][m1.rhs]=1;
bfs(m1);
cout<
NYOJ 58 最少步數 DFS
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 這有乙個迷宮,有0 8行和0 8列 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,1 1,0,0,0,0,1,0,0,1 1,1,0,...
nyoj 58 最少步數(DFS)
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 這有乙個迷宮,有0 8行和0 8列 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,1 1,0,0,0,0,1,0,0,1 1,1,0,...
NYOJ 58 最少步數(dfs)
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 這有乙個迷宮,有0 8行和0 8列 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,1 1,0,0,0,0,1,0,0,1 1,1,0,...