题意简述:\(n\) 个点,两个点之间有 \(c_{i,j}\) 条边。问把整幅图连通的连边方案数?
SOL:
这种题一般先考虑把总方案数求出减去不合法方案数。
设集合 \(S\) 的总方案数为 \(z_{\{S\}}\) ,那么 \(z_{\{S\}}=\sum_{i,j\in S} (c_{i,j}+1)\) 。
再考虑不合法的方案数 \(ilg_{\{S\}}\) ,考虑固定一个点 \(p\) ,然后枚举包含 \(p\) 的 \({S}\) 的真子集,那么 \(ilg_{\{S\}}=lg_{\{T\}}\times z_{\{S-T\}}\) 。
\(lg_{\{S\}}=z_{\{S\}}-ilg_{\{S\}}\) 。
集合从 \(0\) 枚举到 \((1<<16)-1\) 即可。
初始化:\(lg_{1<<i}=1\)