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