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' Crackdown 状态压缩 dp 枚举子集