g008: 災難救援
標籤 : 演算法
通過比率 : 0人/0人 (0%) [非即時]
評分方式:
Tolerant

最近更新 : 2024-11-25 22:57

內容

在一次嚴重的地震後,某城市的主要交通網絡遭到破壞,許多居民被困在不同的地點等待救援。政府已經部署了 N 支救援隊,這些救援隊將分別從不同的起始城市出發,經過待救援的城市,並將居民安全送往避難所 T(避難所設施齊全,能容納所有居民)。每支救援隊需規劃一條最省油的路徑,以達到避難所;為了提高救援效率,每支救援隊所經過的城市不得重複。
城市以數字編號,且編號從 1 開始。您的任務是根據城市間的油費消耗,計算每支救援隊的最省油路徑,並輸出相應的救援過程。

輸入說明
  • 第一行包含四個整數 N、C、M 和 T:
    • N:救援隊的數量。
    • C:城市的數量。
    • M:城市間的道路數量。
    • T:避難所的編號。
  • 第二行包含 N 個整數,分別代表 N 支救援隊的出發城市。
  • 接下來的 M 行,每行描述一條道路:
    • 每行包含三個整數 a, b, c,表示從城市 a 到城市 b 需要消耗 c 單位的油。

註:

  • 1 ≤ N ≤ 10
  • 2 ≤ C ≤ 50
  • 2 ≤ M ≤ 1000
  • 每條道路的油錢消耗範圍為 1 至 1000
輸出說明
  • 程式需要計算每支救援隊從起點城市出發,最省油的路徑到達避難所 T,並且輸出每支救援隊所經過的城市編號。城市編號之間以空格分隔。
  • 救援隊的輸出優先順序
    • 輸入順序為輸出順序。
    • 若油費相同,則按救援隊所經過的城市數量排序。
    • 若油費和城市數量都相同,則按城市編號的升序排序。
  • 若有相同耗油量,則以救援城市數量最多為原則。
  • 若有相同的耗油量且相同城市數量,則以城市編號小者優先。
  • 若救援隊無法到達避難所 T,則應輸出城市路徑後加上 ---X
  • 若某些城市無法被救援隊到達,則應輸出該城市編號後加上 "---X"。
  • 最後一行需要輸出所有救援隊的總油錢消耗。
範例輸入 #1
2 6 8 6
1 3
1 2 2
1 3 4
2 4 7
2 5 3
3 5 5
4 6 1
5 6 8
3 6 6
範例輸出 #1
1 2 4 6
3 6
5---X
17
範例輸入 #2
3 7 10 4
1 5 6
1 2 1
1 3 6
1 4 8
1 5 6
2 3 3
2 4 6
2 5 6
3 4 2
3 5 1
6 7 1
範例輸出 #2
1 2 3 4
5 4
(6)---X
7---X
10
範例輸入 #3
2 5 9 4
3 5
1 4 3
1 5 8
2 1 6
2 5 1
2 4 2
3 2 7
3 1 2
3 4 10
4 5 9
範例輸出 #3
3 1 4
5 2 4
8
範例輸入 #4
1 3 3 2
1
1 2 4
1 3 2
2 3 2
範例輸出 #4
1 3 2
4
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (100%): 1.0s , <1K
提示 :
標籤:
演算法
出處:
海青工商資訊科 [管理者: zero(管理員) ]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」