Find a way (BFS 標記陣列)

2022-04-17 13:24:24 字數 1335 閱讀 4348

題目大意:

m和y想要在kfc見面,現在讓你去找到乙個使兩個人到同乙個kfc總花費時間最小的地方,然後輸出最小的花費時間 (花費時間 = 步數*11)

思路:先對m跑一次bfs並且用乙個陣列記錄它到不同kfc的時間

再對y跑一次bfs並且用另乙個陣列記錄它到不同kfc的時間

然後遍歷這兩個陣列,找到它們到同乙個kfc花費的最小時間

具體**:

1 #include 2 #include 

3 #include 4 #include 5

#define inf 0x6ffffff

6using

namespace

std;

7char map[202][202];//地圖8

int vis[202][202];//

標記陣列

9int flag1[202][202];//

記錄m到達任意kfc的時間

10int flag[202][202];//

記錄y到達任意kfc的時間

11int

n,m;

12int

x1,y1,x2,y2;

13int dir[4][2]=,,,};

14struct

node

1518;19

bool check(int x,int

y)20

25void bfs(int x,int y,int a[202]) //

進入座標和記錄陣列

2650

q.push(ed);51}

52}53}

54int

main()

5572

if(map[i][j]=='m'

)7377}

78 vis[x1][y1]=1

;79 bfs(x1,y1,flag);//

一遍bfs之後

80 memset(vis,0,sizeof(vis));//

初始化81 vis[x2][y2]=1

;82 bfs(x2,y2,flag1); //

再跑一遍bfs。

83int min=inf;

84for(i=0;i)

85for(j=0;j//

遍歷整個地圖、

8690 printf("

%d\n

",min*11);//

每走一步為11分鐘。91}

92return0;

93 }

洛谷p1047標記陣列

題目描述 某校大門外長度為l的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是11公尺。我們可以把馬路看成乙個數軸,馬路的一端在數軸00的位置,另一端在ll的位置 數軸上的每個整數點,即0,1,2,l都種有一棵樹。由於馬路上有一些區域要用來建地鐵。這些區域用它們在數軸上的起始點和終止點表示。已知任一區域...

自學PHP的筆記(六)注釋標記陣列排序

三種注釋方法 1.echo order processed.2.echo order processed.3.echo order processed.php標記風格 1.xml風格 2.簡短風格 3.script風格 4.asp風格 陣列 建立陣列 products array tires oil...

Swift筆記 陣列

建立乙個空陣列 使用構造語法來建立乙個由特定資料型別構成的空陣列 var array int print array.count count 通過建構函式的型別,array的值型別被推斷為 int 建立乙個帶有預設值的陣列 swift 中的array型別還提供乙個可以建立特定大小並且所有資料都被預設...