BZOJ.4160.[NEERC2009]Exclusive Access 2(状压DP Dilworth定理)

BZOJ


DAG中,根据\(Dilworth\)定理,有 \(最长反链=最小链覆盖\),也有 \(最长链=最小反链划分数-1\)(这个是指最短的最长链?并不是很确定=-=),即把所有点划分成最少的集合,使得集合内的点两两之间没有边。
直接状压。设\(f[s]\)表示\(s\)集合内的点是否满足两两之间没有边,\(g[s]\)表示最少可以将\(s\)划分为几个集合使得集合内两两没有边。
那么如果\(f[s']=1\ (s'\in s)\)\(g[s]=\min(g[s],\ g[s\ \text{xor}\ s']+1)\)
复杂度\(O(m2^n+3^n)\)

这么做不需要考虑给边定向啊= =
另一个这样应用\(Dilworth\)定理的好像是导弹拦截问题?

所以这题猜个结论之后,不和BZOJ4145一样吗=v=


//1112kb    728ms
#include 
#include 
#include 
#define lb(x) (x&-x)
const int N=15,M=(1<

你可能感兴趣的:(BZOJ.4160.[NEERC2009]Exclusive Access 2(状压DP Dilworth定理))