hdu5823
官方题解:直接状压dp就行了,f[S]表示点集S的色数,枚举子集转移(子集是独立集)。这样是3^n的。
这样就可以过了……(独立集就是点互相没有连边)
学到了一个穷举子集的简便写法
for (int j=i; j; j=(j-1)&i)
#include<bits/stdc++.h> using namespace std;
int f[],q[],n,t;
bool v[];
char a[][];
unsigned int d[]; void dfs(int i,int st,bool ff)
{
if (i==n) v[st]=ff;
else {
dfs(i+,st,ff);
if (ff)
{
for (int j=; j<=t; j++)
if (a[q[j]][i]=='') {ff=;break;}
}
q[++t]=i;
dfs(i+,st|(<<i),ff);
t--;
}
} int main()
{
int cas;
scanf("%d",&cas);
d[]=;
for (int i=; i<(<<); i++) d[i]=d[i-]*;
while (cas--)
{
scanf("%d",&n);
for (int i=; i<n; i++)
scanf("%s",a[i]);
int m=<<n;t=;
memset(v,,sizeof(v));
dfs(,,);
for (int i=; i<m; i++) f[i]=n;
f[]=;
for (int i=; i<m; i++)
for (int j=i; j; j=(j-)&i)
if (v[j]) f[i]=min(f[i],f[i-j]+);
unsigned int ans=;
for (int i=; i<m; i++) ans+=d[i]*f[i];
printf("%u\n",ans);
}
}
hdu5823的更多相关文章
- HDU5823 : color II
每种颜色的点集肯定是独立集,因此可以通过$O(2^n)$枚举每个集合判断出每个集合是否只需要一种颜色即可染色. 设$f[i][S]$表示$i$种颜色覆盖$S$这个集合的方案数,假定两个集合可以相交,那 ...
- hdu5823(反演dp)
听说3^n也能水过去.. 其实应该是个经典题,求图染色这个np问题. 把问题拆成独立集来进行dp可以在3^n之内水过去. 拆成独立集的时候就发现,等价与一个经典的反演dp问题 然后复杂度就变成了 n* ...
随机推荐
- Codeforces Round #326 (Div. 2) B Duff in Love 简单数论 姿势涨
B. Duff in Love time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- Machine Learning CodeForces - 940F (带修改的莫队)
You come home and fell some unpleasant smell. Where is it coming from? You are given an array a. You ...
- JQuery学习一
第一个JQuery程序 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <he ...
- Bigbluebutton安装过程
BigBlueButton安装过程(翻译) 欢迎来到BigBlueButton 1.0-beta安装指南(以下简称BigBlueButton 1.0).BigBlueButton是一个开放源代码的网络 ...
- jquery获取textarea内容为空的问题
使用 定义了一个textarea,在使用jquery的方法获取文本内容的时候总是为空. var content = $("#content").val(); 后来测试发现,id不能 ...
- [Luogu 1533] 可怜的狗狗
平衡树,我用的SBT. 排一下序尽量减少操作次数. 第K大询问. 以及插入删除. #include <algorithm> #include <cstdio> #include ...
- 【ALB学习笔记】基于多线程方式的串行通信接口数据接收案例
基于多线程方式的串行通信接口数据接收案例 广东职业技术技术学院 欧浩源 1.案例背景 在本博客的<[CC2530入门教程-06]CC2530的ADC工作原理与应用>中实现了电压数据采集的 ...
- 将文件内容导入到MySQL中
1.作用 把文件系统的内容导入到数据库中 2.语法 load data infile "文件名" into table 表名 fields terminated by " ...
- Microsoft Visual Studio TFS 切换登录用户的方法
方法一 用VS2012开发项目,一直困扰着我的是不知道怎么去切换TFS的登录帐户,因为每次TFS都是用默认的账户连接到TFS服务器,有时想切换另一个用户登录TFS服务器, 不知道从何下手,今天总算找到 ...
- windows+nexus+maven环境搭建(转)
windows nexus环境搭建 1.下载nexus 版本为 nexus-2.11.4-01-bundle 下载地址 这里写链接内容 2.将下载好的文件放到D盘进行解压 3.解压后目录结构 nexu ...