100 #ABC211D. [ABC211D] Number of Shortest paths

[ABC211D] Number of Shortest paths

题目描述

AtCoder 国には 1 1 から N N の番号がついた N N 個の都市と、1 1 から M M の番号がついた M M 個の道路があります。

道路 i i を通ると都市 Ai A_i と都市 Bi B_i の間を双方向に 1 1 時間で移動することができます。

都市 1 1 から都市 N N へ最も早く移動することができる経路は何通りありますか?
答えは非常に大きくなる可能性があるので (109+7) (10^9+7) で割ったあまりを求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N M M A1 A_1 B1 B_1 \vdots AM A_M BM B_M

输出格式

答えを出力せよ。
都市 1 1 から都市 N N へ移動することが出来ない場合は 0 0 と出力せよ。

题目大意

Atcoder 国有 NN 座城市,从 11NN 编号,MM 条双向道路,第 ii 条道路连接 AiA_iBiB_i 号城市。

请求出从 11 号城市到 NN 号城市不同最短路径的数量,对 109+710^9+7 取模。

4 5
2 4
1 2
2 3
1 3
3 4
2
4 3
1 3
2 3
2 4
1
2 0
0
7 8
1 3
1 4
2 3
2 4
2 5
2 6
5 7
6 7
4

提示

制約

  • 2  N  2× 105 2\ \leq\ N\ \leq\ 2\times\ 10^5
  • 0  M  2× 105 0\ \leq\ M\ \leq\ 2\times\ 10^5
  • 1  Ai < Bi  N 1\ \leq\ A_i\ <\ B_i\ \leq\ N
  • (Ai,Bi) (A_i,B_i) は相異なる
  • 入力に含まれる値は全て整数である

Sample Explanation 1

都市 1 1 から都市 4 4 へは最短 2 2 時間で移動することができ、それを実現する経路は 1  2  4 1\ \to\ 2\ \to\ 4 1  3  4 1\ \to\ 3\ \to\ 4 2 2 つです。

Sample Explanation 2

都市 1 1 から都市 4 4 へは最短 3 3 時間で移動することができ、それを実現する経路は 1  3  2  4 1\ \to\ 3\ \to\ 2\ \to\ 4 1 1 つです。

Sample Explanation 3

都市 1 1 から都市 2 2 に移動することはできません。この場合 0 0 を出力してください。