思路:
n^2枚举(必须要n^2枚举啊)+拆点

特此嘲讽网上诸多垃圾题解,你们许多都是错的 —yyh

//By SiriusRen
#include <queue>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 5555
int n,m,xx,yy,inf=0x3fffff,ans,ed=105;
struct Node{int x,y;}point[N];
struct Dinic{int first[107],next[N],v[N],w[N],tot,vis[107];void solve(int x,int y){memset(first,-1,sizeof(first)),tot=0;add(0,x,inf),add(x,x+n,inf),add(y,y+n,inf),add(y+n,105,inf);for(int i=1;i<=n;i++)add(i,i+n,1);for(int i=1;i<=m;i++)add(point[i].x+n,point[i].y,inf),add(point[i].y+n,point[i].x,inf);ans=min(ans,x=flow());}void add(int x,int y,int z){Add(x,y,z),Add(y,x,0);}void Add(int x,int y,int z){w[tot]=z,v[tot]=y,next[tot]=first[x],first[x]=tot++;}bool tell(){memset(vis,-1,sizeof(vis)),vis[0]=0;queue<int>q;q.push(0);while(!q.empty()){int t=q.front();q.pop();for(int i=first[t];~i;i=next[i])if(vis[v[i]]==-1&&w[i])vis[v[i]]=vis[t]+1,q.push(v[i]);}return vis[ed]!=-1;}int zeng(int x,int y){if(x==ed)return y;int r=0;for(int i=first[x];~i&&y>r;i=next[i])if(vis[v[i]]==vis[x]+1&&w[i]){int t=zeng(v[i],min(y-r,w[i]));w[i]-=t,w[i^1]+=t,r+=t;}if(!r)vis[x]=-1;return r;}int flow(){int jy=0,tmp;while(tell())while(tmp=zeng(0,inf))jy+=tmp;return jy;}
}dinic;
int main(){while(~scanf("%d%d",&n,&m)){ans=inf;for(int i=1;i<=m;i++){scanf(" (%d,%d)",&point[i].x,&point[i].y);point[i].x++,point[i].y++;}for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(i!=j)dinic.solve(i,j);if(ans==inf)printf("%d\n",n);else printf("%d\n",ans);}
}

转载于:https://www.cnblogs.com/SiriusRen/p/6532141.html

POJ 1966 求无向图点连通度相关推荐

  1. POJ 1144 Network(无向图连通分量求割点)

    题目地址:POJ 1144 求割点.推断一个点是否是割点有两种推断情况: 假设u为割点,当且仅当满足以下的1条 1.假设u为树根,那么u必须有多于1棵子树 2.假设u不为树根.那么(u,v)为树枝边. ...

  2. poj 1523 SPF (无向图 的 割点)

    http://poj.org/problem?id=1523 题意:  求  无向图的 个点,以及 将个点 去掉后  图 被分成 几个联通块: 题解:  tarjan   .   1 #include ...

  3. tarjan算法求无向图的割点和桥

    tarjan算法求无向图的割点与桥 一篇tarjan算法求割点与桥的完整的解释,写的真的好认真 以下代码来自kuangbin的模板 4.5 图的割点.桥和双连通分支的基本概念 [点连通度与边连通度] ...

  4. POJ 1966 枚举 + Dinic

    题意 传送门 POJ 1966 Cable TV Network 题解 若无向图不连通,则图中至少存在两个点不连通,则可以枚举这两个点.若两个不同的点 s , t s,t s,t 因为删去某个点集而不 ...

  5. POJ 1966 Cable TV Network (最大流最小割)

    $ POJ~1966~Cable~TV~Network $ $ solution: $ 第一眼可能让人很难下手,但本就是冲着网络流来的,所以我们直接一点.这道题我们要让这个联通图断开,那么势必会有两个 ...

  6. POJ NOI0105-32 求分数序列和

    问题链接:POJ NOI0105-32 求分数序列和. 总时间限制: 1000ms 内存限制: 65536kB 描述 有一个分数序列 q1/p1,q2/p2,q3/p3,q4/p4,q5/p5,... ...

  7. Bailian2684 POJ NOI0105-34 求阶乘的和【迭代】

    问题链接:POJ NOI0105-34 求阶乘的和. 问题链接:Bailian2684 求阶乘的和. 总时间限制: 1000ms 内存限制: 65536kB 描述 给定正整数n,求不大于n的正整数的阶 ...

  8. C++算法篇:DFS超详细解析(2)--- tarjan算法求无向图割边

    <<<上一篇 系列文章目录 ①:无向图基本概念 ②:tarjan算法求无向图割边 前言 第一次写算法,讲得肯不透彻,有误还请指教awa 文章目录 系列文章目录 一.回顾 二.tarj ...

  9. POJ 1966 Cable TV Network【无向图点连通度 最小割 E-K算法求最大流】

    题目描述: 给你一个无向图,问你最少删掉几个点,使这个图成不连通. 解题报告: 概念 (1)一个具有 N 个顶点的图,在去掉任意 k-1 个顶点后 (1<=K<=N) 所得的子图仍连通, ...

最新文章

  1. 2020-08-23logloss对数损失函数
  2. zcmu-2129(拓扑排序)
  3. vue之登录和token处理
  4. python做接口自动化测试仪器经销商_Python接口自动化测试的实现
  5. Maven学习总结(28)——Maven+Nexus+Myeclipse集成
  6. CLin 和 IDEA创建文件时自动添加作者和时间信息 + 多个.cpp文件在CLion下运行问题...
  7. win8/10上的应用程序怎样以兼容模式运行?
  8. 流浪北京的日子(二)
  9. 《基 于 N Gram 的无词典 中文分词算法》 n-gram读感
  10. MYSQL 数据库配置优化
  11. 三菱PLC仿真软件的序列号
  12. 第二届ATI获奖自动化测试工具介绍
  13. dojo实现省份地市级联---省份数据源
  14. 深度网络自适应DCC算法
  15. 港股美股打新截然不同!教你玩转美股打新
  16. 局域网内两台电脑设置共享文件夹并访问
  17. html是什么意思 它是一种什么样的语言,HTML 是什么?
  18. zznu 1914 asd的甩锅计划
  19. 如何使用python 执行命令行传入的代码
  20. Vue.js:从安装到快速创建脚手架项目,解决刚创建完出现的parsing error:No Bable config file detected报错

热门文章

  1. matlab数值微分
  2. Mac SHA1加密
  3. Shapefile文件读取-文件头
  4. yum安装openJDK1.7
  5. 计算机英语面试题,计算机软件专业考研英语面试必备问题解析
  6. AD布局时出现的自动推挤的使用
  7. 北京天特信科技有限公司声明:我们胜诉!
  8. 论文阅读-Exploring Frequency Adversarial Attacks for Face Forgery Detection(探索用于人脸伪造检测的频率对抗性攻击)
  9. ExecutionContext类详解
  10. 2022甘肃二级造价工程师考试报名开始!北京、浙江二造考试恢复!