BFS 最優乘車(90分已修改)

2021-08-28 03:29:53 字數 928 閱讀 5257

h城是乙個旅遊勝地,每年都有成千上萬的人前來觀光。為方便遊客,巴士公司在各個旅遊景點及賓館,飯店等地都設定了巴士站並開通了一些單程巴上線路。每條單程巴士線路從某個巴士站出發,依次途經若干個巴士站,最終到達終點巴士站。

一名旅客最近到h城旅遊,他很想去s公園遊玩,但如果從他所在的飯店沒有一路已士可以直接到達s公園,則他可能要先乘某一路巴士坐幾站,再下來換乘同一站台的另一路巴士, 這樣換乘幾次後到達s公園。

現在用整數1,2,…n 給h城的所有的巴士站編號,約定這名旅客所在飯店的巴士站編號為1…s公園巴士站的編號為n。

寫乙個程式,幫助這名旅客尋找乙個最優乘車方案,使他在從飯店乘車到s公園的過程中換車的次數最少。

輸入輸入的第一行有兩個數字m和n(1<=m<=100 2<=n<=500),表示開通了m條單程巴士線路,總共有n個車站。從第二行到第m刊行依次給出了第1條到第m條巴士線路的資訊。其中第i+1行給出的是第i條巴士線路的資訊,從左至右按執行順序依次給出了該線路上的所有站號相鄰兩個站號之間用乙個空格隔開。

輸出輸出檔案只有一行。如果無法乘巴士從飯店到達s公園,則輸出"n0",否則輸出你的程式所找到的最少換車次數,換車次數為0表示不需換車即可到達

特殊處理輸入,bsf廣搜。

90分

#includeint n,m,h=0,t=1,w[1000],a[101][101]=,f[1000]=; //陣列開小了,要將w和f開大10倍。。。

bool z[101];

void s()

}}while(hprintf("no");

}int main()

l=0; //清0

}else l=l*10+c-48; //連數

} t++;

f[t]=l; //處理換行前那個數

for(int j=1;jl=0;

} s();

}

最優乘車 bfs

description h城是乙個旅遊勝地,每年都有成千上萬的人前來觀光。為方便遊客,巴士公司在各個旅遊景點及賓館,飯店等地都設定了巴士站並開通了一些單程巴上線路。每條單程巴士線路從某個巴士站出發,依次途經若干個巴士站,最終到達終點巴士站。一名旅客最近到h城旅遊,他很想去s公園遊玩,但如果從他所在的...

920 最優乘車 BFS 流式輸入

h城是乙個旅遊勝地,每年都有成千上萬的人前來觀光。為方便遊客,巴士公司在各個旅遊景點及賓館,飯店等地都設定了巴士站並開通了一些單程巴士線路。每條單程巴士線路從某個巴士站出發,依次途經若干個巴士站,最終到達終點巴士站。一名旅客最近到h城旅遊,他很想去s公園遊玩,但如果從他所在的飯店沒有一路巴士可以直接...

1377 最優乘車 travel

h城是乙個旅遊勝地,每年都有成千上萬的人前來觀光。為方便遊客,巴士公司在各個旅遊景點及賓館,飯店等地都設定了巴士站並開通了一些單程巴士線路。每條單程巴士線路從某個巴士站出發,依次途經若干個巴士站,最終到達終點巴士站。一名旅客最近到h城旅遊,他很想去s公園遊玩,但如果從他所在的飯店沒有一路巴士可以直接...