Links there:HDU5823
题意
求一个图的每一个子图的最小染色数.
点集大小 $N \leq 18$
思路
暴力枚举子集的复杂度是 $O(3^n)$ ,等等! 似乎 $3^{18} = 387420489$ 可能常数优秀可以过?
我们先枚举子图 再枚举子集 是独立集合 涂一个颜色
然后将这个子集剩下的状态转移出来 $f[S] = min(f[S],f[S补]+1)$
交了一发 居然过了!
其实利用快速沃尔什变化可以优化到 $O(2^N \times N^2)$
具体可以看这里Link
Code
1 | //my vegetable has exploded. :( |