時間限制: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
輸出輸出最少走幾步。
樣例輸入
2樣例輸出3 1 5 7
3 1 6 7
12題解:dfs帶回溯;找最小步數;還可以用廣搜bfs,以及用優先佇列優化;11
**:
1 #include2 #include3#define min(x,y) x4
const
int maxn=10;5
const
int inf=1
<<30;6
int map[maxn][maxn]=,
8 ,
9 ,
10 ,
11 ,
12 ,
13 ,
14 ,
15
16};
17int disx[5]=;
18int disy[5]=;
19int
a,b,c,d,min;
20void dfs(int x,int y,int t)
25for(int i=0;i<4;i++)32}
33return;34
}35intmain()
*/41 scanf("
%d",&t);
42while(t--)
49return
0;}
廣搜:
1 #include2 #include3 #include4using
namespace
std;
5const
int inf=0xfffffff;6
int disx[4]=;
7int disy[4]=;
8struct
node;
11 queuedl;
12node a,b;
13int
x,y,ex,ey,t,mi;
14int map[10][10
];15
void
bfs()
27for(int i=0;i<4;i++)31}
32}33int
main(),
37 ,
38 ,
39 ,
40 ,
41 ,
42 ,
43 ,
44
45};
46 memcpy((int *)map,(int *)m,sizeof(m[0][0])*100
);47 scanf("
%d%d%d%d
",&x,&y,&ex,&ey);
48 mi=inf;
49bfs();
50 printf("
%d\n
",mi);51}
52return0;
53 }
1 #include2 #include3 #include4using
namespace
std;
5const
int inf=0xfffffff;6
int disx[4]=;
7int disy[4]=;
8struct
node
13};
14 priority_queuedl;
15node a,b;
16int
x,y,ex,ey,t,mi;
17int map[10][10
];18
void
bfs()
30for(int i=0;i<4;i++)34}
35}36int
main(),
40 ,
41 ,
42 ,
43 ,
44 ,
45 ,
46 ,
47
48};
49 memcpy((int *)map,(int *)m,sizeof(m[0][0])*100
);50 scanf("
%d%d%d%d
",&x,&y,&ex,&ey);
51 mi=inf;
52bfs();
53 printf("
%d\n
",mi);54}
55return0;
56 }
NYOJ 最少步數
時間限制 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...
最少步數(bfs)
時間限制 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 最少步數
時間限制 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,...