眾所周知,tt 有乙隻魔法貓。
今天他在 b 站上開啟了一次旅行直播,記錄他與魔法貓在喵星旅遊時的奇遇。 tt 從家裡出發,準備乘坐貓貓快線前往喵星機場。貓貓快線分為經濟線和商業線兩種,它們的速度與價錢都不同。當然啦,商業線要比經濟線貴,tt 平常只能坐經濟線,但是今天 tt 的魔法貓變出了一張商業線車票,可以坐一站商業線。假設 tt 換乘的時間忽略不計,請你幫 tt 找到一條去喵星機場最快的線路,不然就要誤機了!
輸入包含多組資料。每組資料第一行為 3 個整數 n, s 和 e (2 ≤ n ≤ 500, 1 ≤ s, e ≤100),即貓貓快線中的車站總數,起點和終點(即喵星機場所在站)編號。
下一行包含乙個整數 m (1 ≤ m ≤ 1000),即經濟線的路段條數。
接下來有 m 行,每行 3 個整數 x, y, z (1 ≤ x, y ≤ n, 1 ≤ z ≤ 100),表示 tt
可以乘坐經濟線在車站 x 和車站 y 之間往返,其中單程需要 z 分鐘。
下一行為商業線的路段條數 k (1 ≤ k ≤ 1000)。
接下來 k 行是商業線路段的描述,格式同經濟線。
所有路段都是雙向的,但有可能必須使用商業車票才能到達機場。保證最優解唯一。
對於每組資料,輸出3行。第一行按訪問順序給出 tt 經過的各個車站(包括起點和終點),第二行是 tt 換乘商業線的車站編號(如果沒有使用商業線車票,輸出"ticket not used",不含引號),第三行是 tt 前往喵星機場花費的總時間。
本題不忽略多餘的空格和製表符,且每一組答案間要輸出乙個換行
sample input:
4 1 4
41 2 2
1 3 3
2 4 4
3 4 5
12 4 3
sample output:
1 2 4
25
#include
#include
#include
using
namespace std;
const
int maxn =
2005
;int n, s, e, dis[2]
[maxn]
;int indx_pre[2]
[maxn]
;struct edge edges[maxn]
;int head[maxn]
, tot, vis[maxn]
;//tot 是edge的下標
void
init()
void
addedge
(int x,
int y,
int z)
priority_queueint,
int>
>min_heap;
void
dijkstra
(int s,
int id)}}
}int
main()
indx_pre[0]
[s]=
0; indx_pre[1]
[e]=0;
dijkstra
(s,0);
dijkstra
(e,1);
cin >> k;
int ans = dis[0]
[e], number1 =-1
, number2 =-1
;for
(int i =
1; i <= k;
++i)
} op[0]
[0]= s; op[1]
[0]= e;
if(sign !=
0)cout << endl;
int cnt1 =
0, cnt2 =0;
if(number1 !=-1
)cout << number1 <<
" "<< number2;
for(
int i =
1; i <= cnt2;
++i)
cout << endl;
cout << number1 << endl;
}else
cout << ans << endl;
sign++;}
return0;
}
week7 作業B TT的旅行日記
眾所周知,tt 有乙隻魔法貓。今天他在 b 站上開啟了一次旅行直播,記錄他與魔法貓在喵星旅遊時的奇遇。tt 從家裡出發,準備乘坐貓貓快線前往喵星機場。貓貓快線分為經濟線和商業線兩種,它們的速度與價錢都不同。當然啦,商業線要比經濟線貴,tt 平常只能坐經濟線,但是今天 tt 的魔法貓變出了一張商業線車...
Week7 作業B TT 的旅行日記
眾所周知,tt 有乙隻魔法貓。今天他在 b 站上開啟了一次旅行直播,記錄他與魔法貓在喵星旅遊時的奇遇。tt 從家裡出發,準備乘坐貓貓快線前往喵星機場。貓貓快線分為經濟線和商業線兩種,它們的速度與價錢都不同。當然啦,商業線要比經濟線貴,tt 平常只能坐經濟線,但是今天 tt 的魔法貓變出了一張商業線車...
week7作業題 B TT 的旅行日記
眾所周知,tt 有乙隻魔法貓。今天他在 b 站上開啟了一次旅行直播,記錄他與魔法貓在喵星旅遊時的奇遇。tt 從家裡出發,準備乘坐貓貓快線前往喵星機場。貓貓快線分為經濟線和商業線兩種,它們的速度與價錢都不同。當然啦,商業線要比經濟線貴,tt 平常只能坐經濟線,但是今天 tt 的魔法貓變出了一張商業線車...