题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4997

题意:一个n个点的完全图中去掉一些边。求这个图有多少个子图是边双联通的。(就是去掉任意一条边之后仍是联通的)

思路:

const int mod=1000000007;
const int N=11; int conn[1<<N],disc[1<<N],edge[1<<N];
int bico[1<<N],unco[1<<N],meth[1<<N][1<<N];
int n,m;
int a[N][N]; void cal(int st)
{
edge[st]=0;
int i,j,k;
for(i=0;i<n;i++) if(st&(1<<i)) for(j=i+1;j<n;j++)
{
if(st&(1<<j)) edge[st]+=!a[i][j];
}
conn[st]=(1LL<<edge[st])%mod;
int lowbit=st&(-st);
int rst=st^lowbit;
if(rst)
{
for(i=(rst-1)&rst;;i=(i-1)&rst)
{
int nst=i^lowbit;
conn[st]-=(i64)conn[nst]*((1LL<<edge[st^nst])%mod)%mod;
conn[st]%=mod;
if(i==0) break;
}
}
meth[0][st]=1;
for(i=(st-1)&st;i;i=(i-1)&st)
{
i64 tmp=0;
int lowbit=i&(-i);
int rst=i^lowbit;
for(j=rst;;j=(j-1)&rst)
{
int k=j^lowbit;
tmp+=(i64)meth[i^k][st^i]*conn[k]%mod*(edge[st^i^k]-edge[st^i]-edge[k])%mod;
tmp%=mod;
if(j==0) break;
}
meth[i][st^i]=tmp;
}
bico[st]=conn[st];
if(rst)
{
for(i=(rst-1)&rst;;i=(i-1)&rst)
{
int nst=i^lowbit;
bico[st]-=(i64)bico[nst]*meth[st^nst][nst]%mod;
bico[st]%=mod;
if(i==0) break;
}
}
} int main()
{ int T;
scanf("%d",&T);
while(T--)
{
clr(a,0);
scanf("%d%d",&n,&m);
int i;
for(i=1;i<=m;i++)
{
int u,v;
scanf("%d%d",&u,&v);
u--; v--;
a[u][v]=a[v][u]=1;
}
for(i=0;i<(1<<n);i++)
{
cal(i);
}
int ans=bico[(1<<n)-1];
if(ans<0) ans+=mod;
printf("%d\n",ans);
}
}

HDU 4997 Biconnected (状态压缩DP)的更多相关文章

  1. hdu 5094 Maze 状态压缩dp+广搜

    作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4092176.html 题目链接:hdu 5094 Maze 状态压缩dp+广搜 使用广度优先 ...

  2. HDU 3001(状态压缩dp)

    状态压缩dp的第一题! 题意:Mr ACMer想要进行一次旅行,他决定访问n座城市.Mr ACMer 可以从任意城市出发,必须访问所有的城市至少一次,并且任何一个城市访问的次数不能超过2次.n座城市间 ...

  3. hdu 4856 Tunnels 状态压缩dp

    Tunnels Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem ...

  4. HDU 3001【状态压缩DP】

    题意: 给n个点m条无向边. 要求每个点最多走两次,要访问所有的点给出要求路线中边的权值总和最小. 思路: 三进制状态压缩DP,0代表走了0次,1,2类推. 第一次弄三进制状态压缩DP,感觉重点是对数 ...

  5. hdu 5045 Contest(状态压缩DP)

    题解:我们使用一个二位数组dp[i][j]记录进行到第i个任务时,人组合为j时的最大和(这里的j我们用二进制的每位相应一个人). 详细见代码: #include <iostream> #i ...

  6. hdu 3091 Necklace 状态压缩dp *******

    Necklace Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 327680/327680 K (Java/Others)Total ...

  7. hdu 4628 Pieces 状态压缩dp

    Pieces Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total S ...

  8. HDU 2167 Pebbles 状态压缩dp

    Pebbles Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  9. HDU 1074 (状态压缩DP)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题目大意:有N个作业(N<=15),每个作业需耗时,有一个截止期限.超期多少天就要扣多少 ...

  10. HDU 4511 (AC自动机+状态压缩DP)

    题目链接:  http://acm.hdu.edu.cn/showproblem.php?pid=4511 题目大意:从1走到N,中间可以选择性经过某些点,比如1->N,或1->2-> ...

随机推荐

  1. [php] How to debug PHP in the terminal

    Here I use Netbeans, xdebug to debug the PHP in the terminal of Ubuntu. 1. you have to install the x ...

  2. Workspace Cloning / Sharing in Jenkins

    http://lwandersonmusings.blogspot.com/2011/06/workspace-cloning-sharing-in-hudson.html   What's insi ...

  3. 三层架构和MVC模式

    目录[-] 1.三层架构 2.MVC 2.1 标准的MVC(Model-View-Controller) 2.2 Web MVC 3.三层架构和MVC的区别与联系 1.三层架构 三层架构(3-tier ...

  4. SQL2005中的事务与锁定(二)- 转载

    ------------------------------------------------------------------------ -- Author : HappyFlyStone  ...

  5. 操作系统双语阅读 - Schedulers调度器2

    Most processes can be described as either I/O bound or CPU bound. 大多数进程都可以描述为IO绑定或者CPU绑定. An I/O-bou ...

  6. android 项目学习随笔二十(屏幕适配)

    1.图片适配 放入相同名称的资源文件,机器根据不同分辨率找相近的资源 240*320 ldpi 320*480 mdpi 480*800 hdpi 720*1280 xhdpi 2.布局适配 在不同的 ...

  7. android 学习随笔一(配置调试与基础)

    一.基础与开发环境安装配置 Memory Options: VM Heap表示每个应用所能占用的最大内存. Android 项目目录结构 SRC java源码 android.jar 导入jar才能使 ...

  8. divcss5布局

    一.ie9不支持line-height字体垂直居中兼容问题    原因:CSS中使用了中文字体,而中文字体使用汉字.如:font-family:"微软雅黑"   1.将中文字体汉字 ...

  9. lamp环境编译(apache2.4.7 php5.4.25 mysql 5.5.23)

    环境要求 gcc.gcc-c++.cmake.bison(可能)支持 1.yum install gcc gcc-c++ cmake bison 2.修改yum配置,达到搜索本地设置 移走或改名/et ...

  10. Linux下创建与解压tar, tar.gz和tar.bz2文件及压缩率对比 | 沉思小屋

    刚 在qq群里面一位仁兄问到文件压缩的命令,平时工作中大多用解压缩命令,要是遇到压缩就现查(这不是一个好习惯),于是整理下Linux下创建与解压 zip.tar.tar.gz和tar.bz2文件及他们 ...