#AT2114. F - Shortest Good Path

F - Shortest Good Path

当前没有测试数据。

F - 最短好路径

给定一个有NN个顶点和MM条边的简单连通无向图(简单图没有重边和自环)

对于i=1,2,,Mi=1,2,\ldots,M,第ii条边连接顶点uiu_iuiu_i

如果满足以下两个条件,那么序列(A1,A2,,Ak)(A_1,A_2,\ldots,A_k)被称为长度为kk的路径:

  • 对于所有的i=1,2,,ki=1,2,\ldots,k都成立1AiN1\leq A_i\leq N
  • 对于所有的i=1,2,,k1i=1,2,\ldots,k-1,顶点AiA_i和顶点Ai+1A_{i+1}由一条边直接连接。

空序列被视为长度为00的路径。

S=s1s2sNS=s_1s_2\ldots s_N是一个长度为NN且由0011组成的字符串。 路径A=(A1,A2,,Ak)A=(A_1,A_2,\ldots,A_k)被称为相对于SS的一个好路径,满足以下条件:

  • 对于所有的i=1,2,,Ni=1,2,\ldots,N成立:
    • 如果si=0s_i=0,则AAii的数目是偶数。
    • 如果si=1s_i=1,则AAii的数目时奇数。

共有2N2^N种可能的SS(换句话说,存在2N2^N个长度为NN且由0011组成的字符串)。求出所有这些SS相对于SS的最短好路径长度的和。

在问题的约束下,可以证明,对于长度为NN且由0011组成的字符串SS,至少存在一条相对于SS的好路径。

约束条件

  • 2N172\leq N\leq17
  • N1MN(N1)2N-1\leq M\leq \frac{N(N-1)}{2}

输入 标准输入包含如下格式的数据 NN MM u1u_1 v1v_1 u2u_2 v2v_2 \vdots uMu_M vMv_M

输出 输出结果。

【输入样例1】

3 2
1 2
2 3

【输出样例1】

14

说明 对于S=000S=000,偶数个ii的空序列()()是相对于SS的最短好路径,其长度为00。 对于S=100S=100(1)(1)是相对于SS的最短好路径,其长度为11。 对于S=010S=010(2)(2)是相对于SS的最短好路径,其长度为11。 对于S=110S=110(1,2)(1,2)是相对于SS的最短好路径,其长度为22。 对于S=001S=001(3)(3)是相对于SS的最短好路径,其长度为11。 对于S=101S=101(1,2,3,2)(1,2,3,2)是相对于SS的最短好路径,其长度为44。 对于S=011S=011(2,3)(2,3)是相对于SS的最短好路径,其长度为22。 对于S=111S=111(1,2,3)(1,2,3)是相对于SS的最短好路径,其长度为33。 因此,所求答案为0+1+1+2+1+4+2+3=140+1+1+2+1+4+2+3=14

【输入样例2】

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

【输出样例2】

108