UVA11825 Hackers' Crackdown(状压dp)

Posted noblex

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA11825 Hackers' Crackdown(状压dp)相关的知识,希望对你有一定的参考价值。

题目

传送门:QWQ

 

 

分析

$ n<= 16 $ 显然是状压

然后搞一搞(靠着蓝书yy一下)

 

 

代码

#include <bits/stdc++.h>
using namespace std;
const int maxn=17;
int n, P[maxn], cover[1<<maxn], f[1<<maxn]; 
int main(){
    int kase=0;
    while(scanf("%d",&n)==1 && n){
        for(int i=0;i<n;i++){
            int m,x; scanf("%d",&m);
            P[i]=1<<i;
            while(m--){scanf("%d",&x); P[i]|=(1<<x);}
        }
        for(int S=0;S<(1<<n);S++){
            cover[S]=0;
            for(int i=0;i<n;i++)
                if(S&(1<<i)) cover[S]|=P[i];
        }
        f[0]=0;
        int All=(1<<n)-1;
        for(int S=1;S<(1<<n);S++){
            f[S]=0;
            for(int S0=0;S0;S0=(S0-1)&S){
                if(cover[S0]==All) f[S]=max(f[S],f[S^S0]+1);
            }
        }
        printf("Case %d: %d
",++kase,f[All]);
    }
    return 0;
}

 

 

 

 

 

 

以上是关于UVA11825 Hackers' Crackdown(状压dp)的主要内容,如果未能解决你的问题,请参考以下文章

UVA - 11825 —— Hackers' Crackdown

Hackers' Crackdown UVA - 11825

UVA 11825 - Hackers&#39; Crackdown 状态压缩 dp 枚举子集

UVA11825Hackers' Crackdown

题解 $UVA$ 11825$Hackers$' $Crackdown$

UVA11825 Hackers' Crackdown(状压dp)