P1293 班級聚會洛谷c 題解

2021-10-24 17:11:15 字數 1417 閱讀 3563

題目描述

畢業25年以後,我們的主人公開始準備同學聚會。打了無數**後他終於搞到了所有同學的位址。他們有些人仍在本城市,但大多數人分散在其他的城市。不過,他發現乙個巧合,所有位址都恰好分散在一條鐵路線上。他準備出發邀請但無法決定應該在哪個地方舉行宴會。最後他決定選擇乙個地點,使大家旅行的花費和最小。

不幸的是,我們的主人公既不擅長數學,也不擅長計算機。他請你幫忙寫乙個程式,根據他同學的位址,選擇聚會的最佳地點。花費相同時優先取靠近莫斯科的城市。

輸入格式

輸入檔案的每一行描述了乙個城市的資訊。

首先是城市裡同學的個數,緊跟著是這個城市到moscow(起點站)的距離(km),最後是城市的名稱。最後一行描述的總是moscow,它在鐵路線的一端,距離為0。

輸出格式

聚會地點城市名稱和旅行費用(單程),兩者之間用一空格隔開。每km花費乙個盧布。

輸入輸出樣例

輸入

7 9289 vladivostok

5 8523 chabarovsk

3 5184 irkutsk

8 2213 yalutorovsk

10 0 moscow

輸出

yalutorovsk 112125

這道題目我們可以用結構體與sort函式來做,

首先定義結構體變數

struct citycitys[155];	//城市最多只有150個
然後用結構體陣列儲存每個城市的人數、到起點站的距離和城市名稱。

然後在每個城市中計算當以這個城市為聚餐點時所有人的費用和是多少,在進行排序選擇最小的費用輸出即可。

當然這裡有乙個坑需要我們注意,當兩個城市的花費相同時,優先選擇離起點站最近的。這樣我們在使用sort時,當兩個花費相同時也要進行交換(使用自定義函式)

#include

using

namespace std;

struct citycitys[

155]

;bool

cmp(city c1, city c2)

intmain()

while

(citys[n-1]

.name !=

"moscow");

for(

int i =

0; i < n; i++)}

sort

(citys, citys+n, cmp)

;//花費排序

cout << citys[0]

.name <<

" "<< citys[0]

.money <}

洛谷 P1293 班級聚會

畢業25年以後,我們的主人公開始準備同學聚會。打了無數 後他終於搞到了所有同學的位址。他們有些人仍在本城市,但大多數人分散在其他的城市。不過,他發現乙個巧合,所有位址都恰好分散在一條鐵路線上。他準備出發邀請但無法決定應該在哪個地方舉行宴會。最後他決定選擇乙個地點,使大家旅行的花費和最小。不幸的是,我...

C 洛谷題解 P1425

題號 p1425 題名 小魚的游泳時間 題目 倫敦奧運會要到了,小魚在拼命練習游泳準備參加游泳比賽,可憐的小魚並不知道魚類是不能參加人類的奧運會的。這一天,小魚給自己的游泳時間做了精確的計時 本題中的計時都按24小時制計算 它發現自己從a時b分一直游泳到當天的c時d分,請你幫小魚計算一下,它這天一共...

P1657 選書洛谷c 題解

如果你覺得這篇文章對你有幫助的話,請點點大拇指哦 題目描述 學校放寒假時,資訊學奧賽輔導老師有1,2,3 x本書,要分給參加培訓的x個人,每人只能選一本書,但是每人有兩本喜歡的書。老師事先讓每個人將自己喜歡的書填寫在一張表上。然後根據他們填寫的表來分配書本,希望設計乙個程式幫助老師求出所有可能的分配...