CSES - Eulerian Subgraphs | Đồ thị con Euler

Xem PDF



Tác giả:
Dạng bài
Điểm: 2000 Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Bạn được cho một đồ thị vô hướng có \(n\) nút và \(m\) cạnh.

Chúng tôi xem xét các đồ thị con có tất cả các nút của đồ thị gốc và một số cạnh của nó. Một đồ thị con được gọi là Euler nếu mỗi nút có bậc chẵn.

Nhiệm vụ của bạn là đếm số lượng đồ thị con Euler chia lấy dư cho \(10 ^ 9 + 7\).

Input

  • Dòng đầu vào đầu tiên có hai số nguyên \(n\)\(m\): số lượng nút và cạnh. Các nút được đánh số \(1, 2 \ldots, n\).
  • Sau này, có \(m\) dòng mô tả các cạnh. Mỗi dòng có hai số nguyên \(a\)\(b\): có một cạnh giữa các nút \(a\)\(b\). Có nhiều nhất một cạnh giữa hai nút và mỗi cạnh nối hai nút phân biệt.

Output

  • In số lượng đồ thị con Euler chia lấy dư cho \(10 ^ 9 + 7\).

Constraints

  • \(1 \leq n \leq 10 ^ 5\)
  • \(0 \leq m \leq 2 \cdot 10 ^ 5\)
  • \(1 \leq a, b \leq n\)

Example

Sample input

4 3
1 2
1 3
2 3

Sample output

2

Note

Bạn có thể giữ hoặc loại bỏ tất cả các cạnh, vì vậy có thể có hai đồ thị con Euler.


Bình luận

Không có bình luận nào.