#772. Đếm đường đi ngắn nhất (SHORTEST)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho một đồ thị vô hướng không trọng số gồm N đỉnh và M cạnh, các đỉnh được đánh số từ 1 \sim N . Hỏi từ đỉnh 1 , có bao nhiêu đường đi ngắn nhất đến mỗi đỉnh còn lại.

Dữ liệu:

  • Dòng đầu tiên chứa 2 số nguyên dương N, M , là số đỉnh và số cạnh của đồ thị.
  • M dòng tiếp theo, mỗi dòng gồm hai số nguyên dương x, y , biểu thị có một cạnh nối đỉnh x với đỉnh y . Chú ý rằng có thể có khuyên (cạnh nối chính nó) và đa cạnh (nhiều cạnh nối cùng một cặp đỉnh).

Kết quả:

  • Xuất ra N dòng, mỗi dòng một số nguyên không âm. Dòng thứ i xuất ra số lượng đường đi ngắn nhất khác nhau từ đỉnh 1 đến đỉnh i . Vì đáp án có thể rất lớn, bạn chỉ cần xuất kết quả sau khi \bmod\ 100003 . Nếu không thể đến được đỉnh i , xuất ra 0 .

Ví dụ:

Dữ liệu:

5 7
1 2
1 3
2 4
3 4
2 3
4 5
4 5

Kết quả:

1
1
1
2
4

Giới hạn:

  • Với 20\% dữ liệu, N \le 100 ;
  • Với 60\% dữ liệu, N \le 1000 ;
  • Với 100\% dữ liệu, 1 \le N \le 100000, 0 \le M \le 200000 .