题意:给一个20个点无向连通图,求每条边被多少个极小割集包括

分析:极小割集是边的集合,很显然可以知道,极小割集恰好吧原图分成两部分(这个如果不明白可以用反证法)

然后就是奉上官方题解:http://bestcoder.hdu.edu.cn/blog/ 2016多校训练第4场1003

其实大体思路就是每次枚举一种可能的割集,即状压枚举,其中有不合法的,可以通过预处理标记所有的合法状态

剩下的就是贴代码了,好好看代码细节才是最重要的

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <map>
#include <queue>
#include <vector>
using namespace std;
typedef long long LL;
const int N = (<<)+;
int g[N],sum[N],T,kase,n,m,u[],v[],tot;
bool can[N];
queue<int>q;
inline int lowbit(int x){return x&(-x);}
int main(){
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&m),tot=<<n;
memset(g,,sizeof(g));
memset(can,false,sizeof(can));
memset(sum,,sizeof(sum));
for(int i=;i<m;++i){
scanf("%d%d",&u[i],&v[i]);
g[<<u[i]]|=<<v[i];
g[<<v[i]]|=<<u[i];
}
for(int i=;i<tot;++i)
g[i]|=g[i-lowbit(i)]|g[lowbit(i)];
for(int i=;i<n;++i)q.push(<<i),can[<<i]=true;
while(!q.empty()){
int u=q.front();q.pop();
int go=g[u]^(g[u]&u);
while(go){
int to=lowbit(go)|u;
if(!can[to])q.push(to),can[to]=true;
go-=lowbit(go);
}
}
int all=;
for(int i=;i<tot;++i){
int j=(tot-)^i;
if(i<j&&can[i]&&can[j]){
++sum[i];++sum[j];++all;
}
}
for(int j=;j<n;++j){
for(int i=tot-;i>;--i)
if(!(i&(<<j)))sum[i]+=sum[i^(<<j)];
}
printf("Case #%d:",++kase);
for(int i=;i<m;++i)
printf(" %d",all-sum[(<<u[i])|(<<v[i])]);
printf("\n");
}
return ;
}

最新文章

  1. .NET Core 和 .NET Framework 之间的关系
  2. Python操作Excel之xlrd
  3. Codeforces Round #233 (Div. 2) A、Pages
  4. [问题2014A01] 解答三(升阶法,由董麒麟同学提供)
  5. Linux 文件
  6. VS2012添加对DirectX SDK中需要文件的引用
  7. Android手机USB调试安全闲扯(315晚会免费充电桩事件)
  8. 学习linux的一些指令
  9. leecode第二百一十七题(存在重复元素)
  10. python入门(十四):面向对象(属性、方法、继承、多继承)
  11. 环境部署(一):Linux下安装JDK
  12. 004.Heartbeat+HAProxy+MySQL半复制高可用架构
  13. HNOI2015做题笔记
  14. [C++]线性链表之顺序表&lt;二&gt;
  15. spring中xml配置方式和注解annoation方式(包括@autowired和@resource)的区别
  16. 查看linux安装包的版本信息-TX2
  17. ESP8266调试笔记
  18. Win7安装netbeans 找不到JDK
  19. 怎么让一段xml被识别为字符串
  20. 关于利用ajax时,设置访问延时的方法

热门文章

  1. Bash 小知识点
  2. http://www.aboutyun.com/thread-8792-1-1.html
  3. 解决virtualbox 虚拟机不能ping通win7
  4. [hackerrank]Service Lane
  5. 如何配置svn服务器
  6. 41. First Missing Positive
  7. Android 自定义ActionBar
  8. 机器学习 —— 概率图模型(Homework: Factors)
  9. ios进度条Demo一个
  10. 自定义View(1)简单流程及示例模板