SOS dp

设$ans=\sum\limits_{A \cap B=\varnothing} f(A)g(B) $

直接暴力枚举子集是$O(3^n)$, 一个技巧是先预处理出$h(S)=\sum\limits_{T\subseteq S}g(T)$

然后$ans=\sum\limits_{S\subseteq 2^{U}} f(S)g(2^{U}\backslash S)$

这样复杂度就是$O(n2^n)$

posted @ 2019-10-03 11:53  uid001  阅读(138)  评论(0编辑  收藏  举报