#CSES2078. 欧拉子图

欧拉子图

题目背景

翻译自 CSES-2078 题。

题目描述

给定一个无向图,图中有 nn 个节点和 mm 条边。

我们考虑包含原图中所有节点且部分边的子图。如果一个子图是欧拉子图,那么它的每个节点的度数必须是偶数。

你的任务是计算欧拉子图的数量,并对 109+710^9 + 7 取模。

输入格式

第一行输入两个整数 nnmm,分别表示节点的数量和边的数量。节点编号为 1,2,,n1, 2, \ldots, n

接下来的 mm 行,每行描述一条边。每行包含两个整数 aabb,表示节点 aa 和节点 bb 之间有一条边。每两个节点之间最多有一条边,并且每条边连接的是不同的节点。

输出格式

输出一个整数,表示欧拉子图的数量,结果对 109+710^9 + 7 取模。

样例

4 3
1 2
1 3
2 3
2

提示

既可以保留所有边,也可以删除所有边,因此有两种可能的欧拉子图。

数据范围

  • 1n1051 \le n \le 10^5
  • 0m2×1050 \le m \le 2 \times 10^5
  • 1a,bn1 \le a, b \le n