#334. 独立集

独立集

【题目描述】

​ 小LL有一个魔法阵,这个魔法阵是一个nn个点mm条边的无向图,无重边无自环。点的编号为0...n10...n-1

​ 小LL可以激活一些点,使魔法阵释放出强大的能量。一个激活的点的集合SS能释放出强大的能量当且仅当x,yS,xy之间没有边\forall x,y \in S,x 与 y 之间没有边,我们称这样的集合SS为独立集。注意空集也为独立集。

​ 现在小LL想求对于每一个点的集合TT,有多少子集为独立集。设N={0,1...n1}N=\{0,1...n-1\}AT=ST[S是独立集]A_T=\sum_{S \subset T}[S是独立集]。我们要对于每一个TNT \subset N,求出ATA_T

​ 由于输出的数太多,你只需要输出对AA数组哈希的结果就行了,定义valT=it2ival_T=\sum_{i \in t}2^i,我们要输出:

TN233valTAT\sum_{T \subset N}233^{val_T}*A_T

​ 对 1,000,000,007(1e9+7)1,000,000,007(1e9+7) 取模的结果。

【输入格式】

​ 第一行两个数n,mn,m,为点数和边数。

​ 接下来mm行,每行两个数x,yx,y,表示第xx号节点和第yy号节点有一条边。

​ 保证给定的图没有自环和重边。

【输出格式】

​ 输出仅一行一个数,即为AA数组的哈希值。

【样例输入1】

3 2
0 1
1 2

【样例输出1】

102064182

【样例解释1】

​ 独立集有,{0},{1},{2},{0,2}\emptyset,\{0\},\{1\},\{2\},\{0,2\},所以$A_{\emptyset}=1,A_{\{0\}}=2,A_{\{1\}}=2,A_{\{2\}}=2,A_{\{0,1\}}=3,A_{\{0,2\}}=4,A_{\{1,2\}}=3,A_{\{0,1,2\}}=5$

​ 答案为$233^0*1+233^1*2+233^2*2+233^3*3+233^4*2+233^5*4+233^6*3+233^7*5\equiv 102064182 ~ (mod~1e9+7)$。

【样例2】

​ 见下发文件。

【样例3】

​ 见下发文件。

【数据范围】

​ 对于 20%20\% 的数据,满足 n13,m30n \leq 13,m \leq 30

​ 对于 40%40\% 的数据,满足 n18n \leq 18

​ 对于 60%60\% 的数据,满足 n23n \leq 23

​ 另有 10%10\% 的数据,满足图是一条链。

​ 另有 10%10\% 的数据,满足有n1n-1条边,且每条边有一端连向00号点。

​ 对于 100%100\% 的数据,满足 1n26,0mn(n1)21 \leq n \leq 26,0 \leq m \leq \frac {n*(n-1)} {2}

时间限制:2s

空间限制:512MB