AT_abc244_f [ABC244F] Shortest Good Path
题目描述
给定一个包含 N 个顶点和 M 条边的简单(无自环且无重边)且连通的无向图。
对于 i=1,2,…,M,第 i 条边连接顶点 ui 和顶点 vi。
满足以下两个条件的整数序列 (A1,A2,…,Ak) 被称为长度为 k 的路径:
- 对于所有 i=1,2,…,k,有 1≤Ai≤N。
- 对于所有 i=1,2,…,k−1,顶点 Ai 和顶点 Ai+1 之间有一条边直接相连。
空序列也被视为长度为 0 的路径。
设 S=s1s2…sN 是一个仅由 0 和 1 组成的长度为 N 的字符串。当路径 A=(A1,A2,…,Ak) 满足下述条件时,称路径 A 是关于 S 的好路径:
- 对于所有 i=1,2,…,N,满足以下条件:
- 若 si=0,则 A 中 i 出现的次数为偶数。
- 若 si=1,则 A 中 i 出现的次数为奇数。
对于所有可能的 S(即所有长度为 N 的仅由 0 和 1 组成的字符串,共有 2N 个),请输出“关于 S 的好路径中最短的路径长度”的总和。
在本题的约束下,可以保证无论选择哪一个由 0 和 1 组成的长度为 N 的字符串 S,都至少存在一个关于 S 的好路径。
输入格式
输入以如下格式从标准输入读入。
N M
u1 v1
u2 v2
⋮
uM vM
输出格式
请输出答案。
输入输出样例 #1
输入 #1
3 2
1 2
2 3
输出 #1
14
输入输出样例 #2
输入 #2
5 5
4 2
2 3
1 3
2 1
1 5
输出 #2
108
说明/提示
约束
- 2≤N≤17
- N−1≤M≤2N(N−1)
- 1≤ui,vi≤N
- 给定的图是简单且连通的
- 输入均为整数
样例解释 1
- 当 S=000 时,空序列 () 是关于 S 的最短好路径,其长度为 0。
- 当 S=100 时,(1) 是关于 S 的最短好路径,其长度为 1。
- 当 S=010 时,(2) 是关于 S 的最短好路径,其长度为 1。
- 当 S=110 时,(1,2) 是关于 S 的最短好路径,其长度为 2。
- 当 S=001 时,(3) 是关于 S 的最短好路径,其长度为 1。
- 当 S=101 时,(1,2,3,2) 是关于 S 的最短好路径,其长度为 4。
- 当 S=011 时,(2,3) 是关于 S 的最短好路径,其长度为 2。
- 当 S=111 时,(1,2,3) 是关于 S 的最短好路径,其长度为 3。
因此,所求答案为 0+1+1+2+1+4+2+3=14。
由 ChatGPT 4.1 翻译