最少步數(dfs bfs bfs優化)

2022-03-31 22:48:40 字數 2734 閱讀 7779

時間限制: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

11

題解:dfs帶回溯;找最小步數;還可以用廣搜bfs,以及用優先佇列優化;

**:

1 #include2 #include

3#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 #include

4using

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 #include

4using

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,...