UVa11825 Hackers' Crackdown


题目描述 传送门


简单的状态压缩DP。


代码

#include
#include
#include
#include
using namespace std;
const int maxn=18;
int d[1<1<int main(){
    int n,kase=0;
    while(scanf("%d",&n)==1&&n){
        int U=(1<1;
        memset(p,0,sizeof(p));
        for(int i=0;iint m;
            scanf("%d",&m);
            for(int j=0;jint a;
                scanf("%d",&a);
                p[i]|=1<1<0]=0;
        for(int s=1;s<=U;s++) 
            for(int j=15;j>=0;j--) if((1<1<for(int s=1;s<=U;s++){
            d[s]=0;
            for(int s1=s;s1;s1=(s1-1)&s)
                if(S1[s1]==U) d[s]=max(d[s],d[s^s1]+1);
        }
        printf("Case %d: %d\n",++kase,d[U]);
    }
    return 0;
}

你可能感兴趣的:(UVa,动态规划(DP),状态压缩DP)