题目描述
给出一个
n
个点
定义图
要求你把
H
分解为
分析
实际上这个题把题面要求的东西读懂了,就很好做。
其实
D=(0−1)k
,也就是只有
0,1
两个点时得到的图的若干次幂。
考虑乘上一个
(0−1)
代表了什么,实际上代表把原图复制一份,对应点之间连边。
那么对应的,我们每次尝试把图
H
分解成两个完全相同的图,而且两个图存在的连边只能是一一对应的点。
我们假如枚举了一条层间边,其他的层间边也可以被马上确定。
那么应该要枚举哪条层间边呢?考虑枚举度数最小的点,它的度数不会超过
考虑时间复杂度,
Tn=2Tn2+nn−−√
于是总的时间复杂度是
O(nn−−√logn)