题目描述
N 頂点 M 辺からなるグラフがあり、このグラフの上に高橋くんと青木くんがいます。
グラフの i 番目の辺は頂点 Ui と頂点 Vi を結んでいます。 この辺を通るのにかかる時間は、通る人 (高橋くんまたは青木くん) によらず、また通る方向によらず、Di 分です。
高橋くんは頂点 S を、青木くんは頂点 T を同時に出発し、それぞれ頂点 T および頂点 S へ最短の時間で移動します。 二人の最短路の選び方の組であって、移動の途中で二人が (辺または頂点上で) 出会うことのないようなものの個数を 109 + 7 で割ったあまりを求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
N M S T U1 V1 D1 U2 V2 D2 : UM VM DM
输出格式
答えを出力せよ。
题目大意
在一个有N个顶点和M条边的图上有两个人,分别在S号节点和T号节点。他们要各自走到对面(即在S的人走到T,在T的人走到S)。
给你M条边,描述为(Ui Vi Di)分别表示该边连接的两个点及边的长度。
求两人经过最短路径(可能有多条)且不相遇(在同一单位时间内都在一条边或一个点上)的方案数(答案对10^9+7取模)
4 4
1 3
1 2 1
2 3 1
3 4 1
4 1 1
2
3 3
1 3
1 2 1
2 3 1
3 1 2
2
3 3
1 3
1 2 1
2 3 1
3 1 2
2
8 13
4 2
7 3 9
6 2 3
1 6 4
7 6 9
3 8 9
1 2 2
2 8 12
8 6 9
2 5 5
4 2 18
5 3 7
5 1 515371567
4 8 6
6
提示
制約
- 1 ≤ N ≤ 100,000
- 1 ≤ M ≤ 200,000
- 1 ≤ S, T ≤ N
- S = T
- 1 ≤ Ui, Vi ≤ N (1 ≤ i ≤ M)
- 1 ≤ Di ≤ 109 (1 ≤ i ≤ M)
- i = j のとき、(Ui, Vi) = (Uj, Vj) かつ (Ui, Vi) = (Vj, Uj)
- Ui = Vi (1 ≤ i ≤ M)
- Di は整数である
- 与えられるグラフは連結である
Sample Explanation 1
条件を満たす最短路の選び方は以下の 2 通りあります。 - 高橋くんが頂点 1 → 2 → 3 という経路で、青木くんが頂点 3 → 4 → 1 という経路で移動する。 - 高橋くんが頂点 1 → 4 → 3 という経路で、青木くんが頂点 3 → 2 → 1 という経路で移動する。