uva 11825 - Hackers' Crackdown dp

简介:

 题意

  有n个节点,每个节点有m_i个邻居,每个人和邻居为一个整体,问最多可以分成几组使得每组并集合为全集

转移方程

复杂度 3^n

/*
author:jxy
lang:C/C++
university:China,Xidian University
**If you need to reprint,please indicate the source**
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std;
int node[20];
int ans[1<<17],cover[1<<17];//cover 预处理所有状态下集合并情况
int n;
int main()
{
    int C=0;
    while(~scanf("%d",&n)&&n)
    {
        int m,i,j,t;
        for(i=0;i<n;i++)
        {
            node[i]=1<<i;
            scanf("%d",&m);
            for(j=0;j<m;j++)
            {
                scanf("%d",&t);
                node[i]|=1<<t;
            }
        }
        int Max=(1<<n)-1,S,S0;
        for(S=1;S<=Max;S++) //预处理
        {
            cover[S]=0;
            for(i=0;i<n;i++)
                if(S&(1<<i))cover[S]|=node[i];
        }
        for(S=1;S<=Max;S++) //dp
        {
            ans[S]=0;
            for(S0=S;S0;S0=(S0-1)&S)
            {
                if(cover[S0]==Max)ans[S]=max(ans[S],ans[S^S0]+1);
            }
        }
        printf("Case %d: %d\n",++C,ans[S-1]);
    }
}




目录
相关文章
|
负载均衡
《从零开始手写RPC框架》电子书升级啦!
大家好,我是冰河~~ 今天跟大家正式宣布一个好消息,冰河的《从零开始手写RPC框架(基础篇)》电子书,升级啦! 这本电子书中包含哪些内容呢?小伙伴们可以直接拉到文末查看获取方式,也可以先听冰河吹一吹这本电子书的内容。
644 0
《从零开始手写RPC框架》电子书升级啦!
|
Java Spring
Spring Cloud Alibaba - 26 Gateway-自定义谓词工厂RoutePredicateFactory
Spring Cloud Alibaba - 26 Gateway-自定义谓词工厂RoutePredicateFactory
238 0
|
Android开发
解决圆形进度条ProgressBar的几个问题
Android自带的Progressbar默认就是圆形的,可以通过设置style属性 style="?android:attr/progressBarStyleHorizontal" 复制代码 这样就能变成条状进度条,如下: <ProgressBar android:layout_width="match_parent" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal"/>
1566 0
|
10月前
|
存储 编解码 大数据
阿里云服务器实例选择参考:根据业务场景选择云服务器实例规格
对于初次接触阿里云服务器的用户来说,面对众多实例规格往往不知道如何选择,因为云服务器实例规格不同,价格也不一样,往往会感到无从下手。本文旨在通过详细解析阿里云服务器的不同实例规格及其适用场景,为用户提供一份实用的选型指南,以供参考。
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
328 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
存储 安全 区块链
篡改交易记录是如何防止的
篡改交易记录是如何防止的
|
存储 供应链 区块链
区块链技术在供应链管理中的应用与实践
区块链技术在供应链管理中的应用与实践
|
安全 数据安全/隐私保护
RememberMe简介及用法
RememberMe简介及用法
429 0
RememberMe简介及用法
|
传感器 人工智能 自动驾驶
未来出行:无人驾驶汽车的技术革新与挑战
本文深入探讨了无人驾驶汽车背后的技术原理,包括感知、定位、决策和执行四个核心系统。同时,文章分析了当前自动驾驶技术的发展现状,并指出了技术标准不统一、基础设施不完善和法律法规滞后等主要挑战。最后,展望了无人驾驶汽车未来的发展趋势,强调了跨学科合作和政策支持的重要性。
610 4

热门文章

最新文章