最優乘車 SSL 1194(廣搜例題)

2021-08-13 06:31:35 字數 1328 閱讀 8704

description

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

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

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

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

輸入的第一行有兩個數字m和n(1<=m<=100)

sample input

3 7         //三條線路,共有七個車站(7站是目的地)

6 7 //第一條線路,這條線路有兩個車站,分別是6站,7站(目的地是7站)

4 7 3 6 //第二條線路,這條線路有四個車站,分別是4站,7站(目的地是7站),3站,6站

2 1 3 5 //第二條線路,這條線路有四個車站,分別是2站,1站(目的地是7站),3站,5站

sample output

2        //從1站開始,一直到3站,接著換乘第2條線路,坐到7站,所以是2次(一開始上車算一次換乘1次)
## 解題思路

廣搜## **

#include #include using namespace std;

int m,n,l;

int father[1001],state[1001],a[1001][1001],v[101];//注意陣列不要開太小

void bfs()

}while (head>m>>n;

scanf("\n");

char c;

int k,c1,p[10001];

c1=0;

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

state[i]=-1;

for (int i=1;i<=m;i++) //讀入就不多說了

{  k=0;

while ((c=getchar())&&c!='\n')

{   if (c!=' ') c1=c1*10+c-48;

else k++,p[k]=c1,c1=0;

for (int j=1;j大概就是這樣了。細胞問題走起 qaq

SSL 1194 最優乘車

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

最優乘車 bfs

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

1377 最優乘車 travel

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