#49. Chuỗi Xích của Dark (Mã bài: DARK)

Bộ nhớ: 256 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 tên là Dark gồm N đỉnh và hai loại cạnh: cạnh chính và cạnh phụ. Đồ thị có N-1 cạnh chính, và các cạnh này tạo thành một cây nối tất cả N đỉnh. Ngoài ra, đồ thị còn có M cạnh phụ.

Nhiệm vụ của bạn là tìm số cách làm cho đồ thị Dark mất tính liên thông bằng một quy trình gồm hai bước:

  1. Đầu tiên, bạn phải cắt đúng một cạnh chính.
  2. Sau đó, bạn phải cắt đúng một cạnh phụ.

Một cặp thao tác (cắt một cạnh chính, cắt một cạnh phụ) được coi là một cách thành công nếu sau cả hai thao tác, đồ thị bị mất tính liên thông. Lưu ý rằng, ngay cả khi việc cắt cạnh chính ở bước đầu tiên đã làm đồ thị mất liên thông, bạn vẫn bắt buộc phải cắt thêm một cạnh phụ để hoàn thành một cách hợp lệ.

Yêu cầu: Hãy đếm tổng số cắt cặp cạnh thỏa mãn yêu cầu.

Dữ liệu:

  • Dòng đầu tiên chứa hai số nguyên N M , lần lượt là số đỉnh và số cạnh phụ;
  • N-1 dòng tiếp theo, mỗi dòng chứa hai số nguyên A B , mô tả một cạnh chính nối giữa đỉnh A B ;
  • M dòng cuối cùng, mỗi dòng chứa hai số nguyên, mô tả một cạnh phụ.

Kết quả: In ra một số nguyên duy nhất là tổng số cách hợp lệ để chia cắt đồ thị.

Ví dụ:

Dữ liệu:

4 1
1 2
2 3
1 4
3 4

Kết quả:

3

Giải thích:

  • Cắt cạnh 1-2 với cạnh 3-4
  • Cắt cạnh 2-3 với cạnh 3-4
  • Cắt cạnh 1-4 với cạnh 3-4

Giới hạn: 1 \le N \le 10^5 , 1 \le M \le 2 \times 10^5 . Dữ liệu đảm bảo đáp án không vượt quá 2^{31}-1 .

  • Subtask #1: 20\% số điểm có 1\le N,M\le 100 ;
  • Subtask #2: 80\% số điểm còn lại không có ràng buộc bổ sung.