UVA - 11825 Hackers' Crackdown 状态压缩
来源:互联网 发布:java replace 编辑:程序博客网 时间:2024/05/29 18:40
题目大意:有n台电脑,有n种服务,每台计算机上都运行着这n中服务。你是一名黑客,对于每台计算机,你可以选择一种服务,终止这台计算机和所有与他相邻计算机的该项服务,问最多能终止多少种服务
解题思路:用一个数组先将所有相邻的计算机记录,用“|”运算符记录相邻的计算机,然后再用另一个数组统计一下关闭计算机的所有情况并记录,最后再枚举关闭计算机的所有情况能关闭多少种服务
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define maxn 20int A[maxn], cover[1 << maxn], dp[1<<maxn];int main() {int n, m, x, mark = 1;while(scanf("%d",&n) == 1 && n) {for(int i = 0; i < n; i++) {scanf("%d",&m);A[i] = (1 << i);while(m--) {scanf("%d",&x);A[i] |= (1 << x);}}for(int i = 0; i < (1 << n); i++) {cover[i] = 0;for(int j = 0; j < n; j++)if((1 << j) & i)cover[i] |= A[j];}int ALL = (1 << n) - 1;for(int i = 0; i < (1 << n); i++) {dp[i] = 0;for(int j = i; j ; j = (j - 1) & i) if(cover[j] == ALL)dp[i] = max(dp[i],dp[i^j] + 1);}printf("Case %d: %d\n",mark++, dp[ALL]);}return 0;}
0 0
- Uva 11825 - Hackers' Crackdown 状态压缩
- Uva 11825 - Hackers’ Crackdown 状态压缩DP
- UVA 11825 Hackers' Crackdown 状态压缩dp
- 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)
- UVA 11825 - Hackers' Crackdown(状态压缩DP)
- uva 11825 Hackers' Crackdown(动态规划-状态压缩DP)
- UVA 11825 - Hackers' Crackdown 状态压缩 dp 枚举子集
- UVA 11825 Hackers' Crackdown(状态压缩DP)
- UVa 11825 Hackers' Crackdown(二进制压缩+DP)
- Uva-11825-Hackers’ Crackdown
- UVA 11825 Hackers' Crackdown
- UVA 11825 Hackers' Crackdown
- uva 11825 - Hackers' Crackdown
- BZOJ系列1406《[AHOI2007]密码箱》题解
- [转载]发表学术论文必须做的10件事
- 互联网产品经理找工之旅
- file not recognized:file format not recognized
- irb 與 ruby 指令
- UVA - 11825 Hackers' Crackdown 状态压缩
- 银行影像内容大数据系统设计与实例问题分析
- 指针与数组探讨
- 干货,10个免费的HTML编辑器
- poj2376解题报告
- B树、B-树、B+树、B*树
- 感觉黑客帝国的时代不远了
- 苹果3月9日开发布会 主角或是Apple Watch
- 删除顺序表L中最小元素结点,并通过引用型参数value返回其值 如果删除成功,返回TRUE,否则,返回false