hdu5823
2024-10-15 11:24:13
官方题解:直接状压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);
}
}
最新文章
- 安装Yeoman,遇到的问题
- python 进程间共享数据 (二)
- Jade之标签
- 001医疗项目-项目框架的搭建(四个maven工程)
- 08SpringMvc_(1)继承AbstractCommandController的Action[能够以实体的形式,收集客户端参数].(2)日期转换器和编码过滤器
- busying
- 用C#来查看电脑硬件和系统信息
- dede当前位置各种写法
- tomcat 错误查看
- 存储过程学习笔记(SQL数据库
- java基础(二)-----java的三大特性之继承
- jQuery 对象 等操作
- 基于mave的dubbo分别架构
- Linux 下各个目录的作用及内容
- jxl 的详细用法说明
- linux系统web站点设置-http基础设置
- PHP如何获取本周周二的日期?
- C++:delete不完整类型的指针
- SQL Server提取字段中的所有数字
- ie中input光标问题