设为首页 加入收藏

TOP

uva 11825 Hackers' Crackdown (状压dp,子集枚举)
2015-07-24 05:57:13 来源: 作者: 【 】 浏览:7
Tags:uva 11825 Hackers' Crackdown 状压 子集 枚举

题目链接:uva 11825


题意:

你是一个黑客,侵入了n台计算机(每台计算机有相同的n种服务),对每台计算机,你可以选择终止一项服务,则他与其相邻的这项服务都终止。你的目标是让更多的服务瘫痪(没有计算机有该项服务)。


思路:(见大白70页,我的方程与大白不同)

把n个集合P1、P2、Pn分成尽量多的组,使得每组中所有集合的并集等于全集,这里的集合Pi是计算机i及其相邻计算机的集合,用cover[i]表示若干Pi的集合S中所有集合的并集,dp[s]表示子集s最多可以分成多少组,则

如果cover[s]=all,那么dp[s]至少为1.

dp[s]=max(dp[s],dp[s0]+dp[s^s0]); (两个子集的和)


代码:

#include 
  
   
#include 
   
     #include 
    
      #define N 16 using namespace std; int n, m, x, dp[1<
     
      


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇每日算法之三十四:Multiply Stri.. 下一篇源码分析:onAttach, onMeasure, ..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: