【动态规划】[UVa 11825]Hackers' Crackdown
来源:互联网 发布:最优化方法孙文瑜答案 编辑:程序博客网 时间:2024/05/22 12:14
这道题目用DP来搞首先题目可以看成把所有的计算机分成很多组每一组的都关闭同一种服务,同时这一组的关闭能够关闭所有的计算机,那么另
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int MAXN = 16;int P[MAXN+10], cover[(1<<MAXN)+1], n, m;void GetaCover(int S){ int tmp = S, t=0; cover[S] = 0; while(S){ if(S & 1) cover[tmp] |= P[t]; S >>= 1; t++; }}bool Read(){ int t; scanf("%d", &n); if(n == 0) return false; for(int i=0;i<n;i++){ scanf("%d", &m); P[i] = 1 << i; for(int j=0;j<m;j++){ scanf("%d", &t); P[i] |= (1 << t); } } t = 1 << n; for(int i=0;i<t;i++) GetaCover(i); return true;}int f[(1<<MAXN)+2];int solve(){ int Max = 1 << n; for(int S=0; S<Max; S++){ f[S] = 0; for(int S0=S; S0; S0=(S0-1)&S) f[S] = max(f[S], f[S-S0]+int(cover[S0]==(Max-1))); } return f[Max-1];}int main(){ int cas = 0; while(Read()){ printf("Case %d: %d\n", ++cas, solve()); } return 0;}
0 0
- 【动态规划】[UVa 11825]Hackers' Crackdown
- uva 11825 Hackers' Crackdown(动态规划-状态压缩DP)
- Uva-11825-Hackers’ Crackdown
- UVA 11825 Hackers' Crackdown
- UVA 11825 Hackers' Crackdown
- uva 11825 - Hackers' Crackdown
- UVA - 11825 Hackers' Crackdown
- uva 11825 Hackers' Crackdown
- UVa 11825 Hackers’ Crackdown
- UVA 11825 Hackers' Crackdown
- UVA 11825 Hackers' Crackdown
- UVA11825[Hackers' Crackdown] 动态规划
- uva 11825 - Hackers' Crackdown dp
- uva 11825 - Hackers' Crackdown dp
- Uva 11825 - Hackers' Crackdown 状态压缩
- Uva 11825 - Hackers’ Crackdown 状态压缩DP
- UVA 11825 Hackers' Crackdown 状态压缩dp
- UVa 11825 Hackers’ Crackdown / 状态压缩DP
- shell脚本实现互动式重启
- 面向对象基本概念
- Zigzag数组的初始化
- How-to: resolve "java.lang.NoClassDefFoundError: org/htrace/Trace" when hbase Export
- ubuntu.sh: 113: ubuntu.sh: Syntax error: "(" unexpected
- 【动态规划】[UVa 11825]Hackers' Crackdown
- vs2008+matlab2010b--matlab转换为dll的操作步骤 ( 二)
- require(),include(),require_once()和include_once()区别
- Quick-Cocos2d-x 3.3中常用的文件和函数(一)
- Spring -- IOC理论
- 【Python】 Flask 缘分匹配练手项目
- Creating Custom Listeners
- 移植Qt-5.5.0到ARM Cortex-A8
- 往数据库存取图片/视频