2024端午鋁紫程式設計競賽

飞麦發表於2024-06-07

2024-06-07 飛麥

參賽人員

鋁紫所有註冊成員。

截止時刻

2024-06-17 23:59:59。

提交方式

用鋁紫註冊郵箱傳送源程式(注意以附件形式)給飛麥fitmap@qq.com
郵件標題:2024端午鋁紫程式設計競賽。
不接受額外諮詢,如有疑惑請認真閱讀題目,如有多種選擇請按最合理的方式實現。

獎勵

1000元。

程式語言

C/C++, Go, Java, JavaScript, Python, Ruby, Rust, Zig。

評比

由飛麥主觀評定, 綜合考察正確性、可維護性、可讀性、可擴充套件性、靈活性、簡潔性、效能, 從結果完全正確的參賽者中選綜合最優的。

目標

​ 總體介紹:

​ 深圳各地若干驢友擬聚會,將全部乘地鐵,需選3個地鐵站為候選聚會站,併到該站附近聚會。
​ 這些驢友都用手機NFC深圳通(即不用二維碼、現金等等)購票,享受95折優惠,以下所稱票價均為折後價。
​ 這些驢友均按成人付費,沒有學生優惠或老年人免費的情況。
​ 這些驢友都乘坐地鐵普通車箱(即非商務車箱)。
​ 每位驢友只有唯一一個出發地鐵站。
​ 所有地鐵線路(擁有固定數目的地鐵站)及所有地鐵站均處於正常通行及正常運營狀態。
​ 站昂貴度定義:本站到深圳地鐵所有其它站的票價的均值。
​ 線路昂貴度定義:本線路所有站的昂貴度的均值。
​ 站數定義:乘坐地鐵每抵達一個站,站數加一,換乘地鐵線不影響站數。
​ 消耗定義:從出發站到聚會站的路徑中,所有相鄰站間票價之和加上所有換乘消耗(每次換乘3.8元)之和。
​ 最優路徑定義:從出發站到聚會站的所有路徑中消耗最低的路徑;當有多條消耗最低路徑時,
​ 逐對比較各路徑途經線路的昂貴度,選首個遇到的低昂貴度的線路所在路徑;若某路徑的線路已比較完,則選此路徑。
​ 深圳地鐵各線路、站、票價請用程式從網際網路下載並處理,下載後可快取在本地,處理後的資料也可快取在本地。
​ 程式初始執行時不能有現成的資料,需要從網上自動下載。

​ 輸入說明:

​ 位於Windows剪貼簿中Unicode編碼的文字,其中每行包含一位驢友的暱稱及其出發站,最後一行可以沒有換行符。
​ 其中:暱稱由2個以上既是{Alphabetic}又是({ASCII}或{Unihan})的字元組成,
​ 站由2個以上既是{Alphabetic}又是{Unihan}的字元組成。
​ Alphabetic https://www.unicode.org/versions/Unicode15.1.0/ch04.pdf#G91002
​ Unihan https://www.unicode.org/charts/unihan.html
​ 本程式須對每行用一個完整的正規表示式進行檢查,
​ 該正規表示式遇到首組2個以上連續的既是{Alphabetic}又是({ASCII}或{Unihan})的字元時提取為暱稱,
​ 再遇到首組2個以上連續的既是{Alphabetic}又是{Unihan}的字元時提取為站。
​ 輸入中可能有不符合規則的行,程式應檢查並列出不符合規則的行,並仍然處理其它符合規則的行。

​ 輸出格式:

​ 第1候選
​ 聚會站=A 消耗均值=B.BB 消耗標準差=C.CC 票價均值=D.DD 票價標準差=E.EE 站數均值=F.FF 站數標準差=G.GG
​ 第1位驢友暱稱 路徑=出發站->H號線->A 消耗=I.II 票價=J.JJ 站數=K
​ 第2位驢友暱稱 路徑=出發站->L號線->M->O號線->A 消耗=P.PP 票價=Q.QQ 站數=R
​ ...
​ 第N位驢友暱稱 路徑=出發站->S號線->T->U號線->V->W號線->A 消耗=X.XX 票價=Y.YY 站數=Z
​ 第2候選
​ 內容與上面類似
​ 第3候選
​ 內容與上面類似
​ 注:起點站與終點站相同時,路徑為空;上面的出發站到聚會站路徑必須為最優路徑;
​ 上面的標準差和均值指這些驢友相應指標的標準差和均值;上面的M、T、V均為換乘站,非換乘站也計站數但不列出;
​ 各小數輸出時均四捨五入為2位小數。

​ 候選聚會站排序要求:

​ 這些驢友到聚會站的最優路徑的消耗均值少(第一優先),對應上面的B.BB;
​ 這些驢友到聚會站的最優路徑的消耗標準差小(第二優先),對應上面的C.CC;
​ 這些驢友到聚會站的票價均值低(第三優先),對應上面的D.DD;
​ 這些驢友到聚會站的票價標準差小(第四優先),對應上面的E.EE;
​ 這些驢友到聚會站的最優路徑的站數均值少(第五優先),對應上面的F.FF;
​ 這些驢友到聚會站的最優路徑的站數標準差小(第六優先),對應上面的G.GG;
​ 聚會站到深圳地鐵所有其它站的最優路徑的消耗均值少(第七優先);
​ 聚會站到深圳地鐵所有其它站的票價均值低(第八優先);
​ 聚會站到深圳地鐵所有其它站的最優路徑的站數均值少(第九優先);
​ 聚會站在深圳地鐵範圍內可直達不轉車的站多(第十優先)。

​ 驢友排序要求:

​ 到聚會站的最優路徑的消耗少(第一優先);
​ 到聚會站的票價低(第二優先);
​ 到聚會站的最優路徑的站數少(第三優先);
​ 驢友暱稱逐字Unicode編碼小(第四優先)。

輸入示例

飛麥 購物公園
怡寶 下沙
朱珠 坂田
湯圓 固戍

輸出示例

第1候選
聚會站=車公廟 消耗均值=14.25 消耗標準差=11.50 票價均值=3.56 票價標準差=1.70 站數均值=5.75 站數標準差=4.26
怡寶 路徑=下沙->9號線->車公廟 消耗=1.90 票價=1.90 站數=1
飛麥 路徑=購物公園->1號線->車公廟 消耗=3.80 票價=1.90 站數=2
湯圓 路徑=固戍->1號線->前海灣->11號線->車公廟 消耗=23.75 票價=5.70 站數=10
朱珠 路徑=坂田->5號線->五和->10號線->崗廈北->11號線->車公廟 消耗=27.55 票價=4.75 站數=10
第2候選
聚會站=福田 消耗均值=14.96 消耗標準差=10.41 票價均值=3.80 票價標準差=2.02 站數均值=5.75 站數標準差=4.32
飛麥 路徑=購物公園->3號線->福田 消耗=1.90 票價=1.90 站數=1
怡寶 路徑=下沙->9號線->車公廟->11號線->福田 消耗=7.60 票價=1.90 站數=2
朱珠 路徑=坂田->5號線->深圳北站->4號線->少年宮->3號線->福田 消耗=24.70 票價=4.75 站數=9
湯圓 路徑=固戍->1號線->前海灣->11號線->福田 消耗=25.65 票價=6.65 站數=11
第3候選
聚會站=崗廈北 消耗均值=16.15 消耗標準差=8.09 票價均值=3.80 票價標準差=1.78 站數均值=6.25 站數標準差=4.02
飛麥 路徑=購物公園->3號線->福田->11號線->崗廈北 消耗=7.60 票價=1.90 站數=2
怡寶 路徑=下沙->9號線->車公廟->11號線->崗廈北 消耗=9.50 票價=2.85 站數=3
朱珠 路徑=坂田->5號線->五和->10號線->崗廈北 消耗=19.95 票價=3.80 站數=8
湯圓 路徑=固戍->1號線->前海灣->11號線->崗廈北 消耗=27.55 票價=6.65 站數=12

相關文章