最少轉機(廣搜)

2021-07-10 02:39:31 字數 767 閱讀 3175

題意:小哼和小哈一起坐飛機旅遊,他們現在位於1號城市,目標是5號城市,可是1號城市沒有到5號城市直航,不過他們收集了很多航班資訊,現在他們要找出轉機次數最少的方案。。。。。

樣例:5 7 1 5

1 21 3

2 32 4

3 43 5

4 5第一行的5表示有5個城市(編號為1~5),7表示有7條航線,1表示起始城市,5表示目標城市,接下來的每行「a b」,表示a,b之間有航線,也就是a,b之間可以相互到達。。。

思路:這是乙個無向圖,故用廣度優先搜尋。

**:#include

#include

#include

using namespace std;

struct bb

now,nex;

int main()

,book[60]=;

int n,m,a,b,sx,end;

scanf("%d%d%d%d",&n,&m,&sx,&end);

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++)

for(int i=1;i<=m;i++)

queueq;   //初始化佇列

now.x=sx; 

book[sx]=1;

now.y=0;

q.push(now);

while(!q.empty())

if(nex.x==end)}}

printf("%d\n",nex.y);

}

BFS求最短路 最少轉機

最少轉機 標籤 搜尋 詳情 小哼和小哈一同坐飛機去旅遊,他們現在位於1號城市,目標是5號城市,可是 1號城市並沒有到 5號城市的直航。不過小哼已經收集了很多航班的資訊,現在小哼希望找到一種乘坐方式,使得轉機的次數最少,如何解決呢?輸入格式 第一行的有兩個整數n m s e,n表示有n個城市 城市編號...

最少步數,廣搜

這個題,需要處理的細節太多了 框架5,6分鐘就寫好了,然後開始各種報錯 處理細節大概花了3個小時 include include include include using namespace std struct node queueq int f 4 2 int map 9 9 int bfs ...

最少轉彎問題

給出一張地圖,這張地圖被分為n m n,m 100 個方塊,任何乙個方塊不是平地就是高山。平地可以通過,高山則不能。現在你處在地圖的 x1,y1 這塊平地,問 你至少需要轉幾個彎才能到達目的地 x2,y2 你只能沿著水平和垂直方向的平地上行進,轉彎次數就等於行進方向的改變 從水平到垂直或從垂直到水平...