ABC187F题解

题面

状压DP。
看到这个 \(n\leq18\) ,立刻想到状压DP。
考虑转移方程,一个状态可以由两个子状态转移而来,所以 \(f_i=f_{i-j}+f_j\)
如果 \(i-j\)\(j\) 这两个状态可以合并,那么等于说是 \(i\) 这个状态本身是个完全图。那么我们判断一下这个 \(i\) 是不是完全图,是的话 \(f_i=1\)
再去看如何判断完全图。显然,对于 \(i\) 中出现的每个点,都与 \(i\) 中所有点有连边。那我们存图的时候,对于每个点用状态压缩的方式存储他和哪些点有边相连。判断的时候只需要判断 \(e_u \operatorname{and} i\) 是否 \(=i\) 即可。时间复杂度 \(O(n\times 2^n)\)

代码

posted @ 2021-10-20 19:49  1358id  阅读(80)  评论(0编辑  收藏  举报