1722 最優乘車 2023年NOI全國競賽

2022-02-28 07:10:33 字數 1062 閱讀 5184

題目描述 description

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

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

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

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

輸入描述 input description

輸入檔案是input.txt。檔案的第一行有兩個數字m和n(1<=m<=100 1輸出描述 output description

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

樣例輸入 sample input

3 76 7

4 7 3 6

2 1 3 5

樣例輸出 sample output

1 #include 2 #include 3 #include 4 #include 5 #include 6

using

namespace

std;

7const

int n=510,inf=1000000000;8

char s[100000];9

intn,m;

10int

dis[n][n];

11 inline void

gi() 12;

18while(j23for(int i=1;i<=p;i++)

24for(int j=i+1;j<=p;j++)

25 dis[a[i]][a[j]]=1;26

}27intmain()

28

題解 洛谷P5767 NOI1997 最優乘車

題面 一道很經典的最短路模型轉換問題。考慮如何建圖。我們可以發現,對於每一條公交線路,可以將這條線路上 可以到達的兩個點 連一條權值為 1 的邊。獲取一條公交線路上的每乙個點可以使用讀取每乙個字元的方式,注意要先讀取第一行的換行符。然後就是普通的 bfs 求圖的最短路問題了。最後注意特判輸出no和 ...

最優乘車 bfs

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

1377 最優乘車 travel

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