Logo 邂逅编程之美

UOJ

时间限制:1 s 空间限制:512 MB
Statistics

down

【题目背景】

(本题的题面与题目名称没有任何联系, 恰如现在的我们与丝之歌没有任何联系。)

I love you it’s ruining my life

Another fortnight lost in America

【题目描述】

度过了梦幻的两周, 生活支离破碎, 烟草的香味, 一望无际的薰衣草, 绿水或者青 山, 诗人卡芙米已无法分别梦与现实。似是若非的飘渺感一直在她身边, 现在她正漫步 在 California 寻找新的灵感。

California 可以被抽象为 $n$ 个点 $m$ 条边的无向图,其中可能包含重边与自环。现 在她希望知道有多少种方案选出一些边,使得这些边可以覆盖所有点。称点 $u$ 被某种方案覆盖,当且仅当其中存在至少一条边,使得此边的一个端点为 $u$。两个方案被视为不同的,当且仅当存在一条边,其在一种方案中被选中,在另一种方案中没有被选中。特别地,重边被视为不同的边。

【输入格式】

从文件 silksong.in 中读入数据。 第一行两个正整数 $n, m$。 接下来 $m$ 行每行两个正整数 $u,v$,表示一条边。

【输出格式】

输出到文件 silksong. out 中。 一行一个非负整数,表示好的集合的个数对 $10^9 + 7$ 取模后的值。

【样例 1 输入】

3 3
1 2
2 3
1 3

【样例 1 输出】


4

【样例 1 解释】

好的集合有以下四个:

  1. ${(1, 2), (2, 3)}$;
  2. ${(1, 2), (1, 3)}$;
  3. ${(2, 3), (1, 3)}$;
  4. ${(1, 2), (2, 3), (1, 3)}$。

【样例 2 输入】

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

【样例 2 输出】

16

【数据范围】

对于所有测试点: $1 \le n \le 40, 1 \le m \le 60$。图中可能包含重边与自环。