POJ 1966 求无向图点连通度
思路:
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 求无向图点连通度相关推荐
- POJ 1144 Network(无向图连通分量求割点)
题目地址:POJ 1144 求割点.推断一个点是否是割点有两种推断情况: 假设u为割点,当且仅当满足以下的1条 1.假设u为树根,那么u必须有多于1棵子树 2.假设u不为树根.那么(u,v)为树枝边. ...
- poj 1523 SPF (无向图 的 割点)
http://poj.org/problem?id=1523 题意: 求 无向图的 个点,以及 将个点 去掉后 图 被分成 几个联通块: 题解: tarjan . 1 #include ...
- tarjan算法求无向图的割点和桥
tarjan算法求无向图的割点与桥 一篇tarjan算法求割点与桥的完整的解释,写的真的好认真 以下代码来自kuangbin的模板 4.5 图的割点.桥和双连通分支的基本概念 [点连通度与边连通度] ...
- POJ 1966 枚举 + Dinic
题意 传送门 POJ 1966 Cable TV Network 题解 若无向图不连通,则图中至少存在两个点不连通,则可以枚举这两个点.若两个不同的点 s , t s,t s,t 因为删去某个点集而不 ...
- POJ 1966 Cable TV Network (最大流最小割)
$ POJ~1966~Cable~TV~Network $ $ solution: $ 第一眼可能让人很难下手,但本就是冲着网络流来的,所以我们直接一点.这道题我们要让这个联通图断开,那么势必会有两个 ...
- POJ NOI0105-32 求分数序列和
问题链接:POJ NOI0105-32 求分数序列和. 总时间限制: 1000ms 内存限制: 65536kB 描述 有一个分数序列 q1/p1,q2/p2,q3/p3,q4/p4,q5/p5,... ...
- Bailian2684 POJ NOI0105-34 求阶乘的和【迭代】
问题链接:POJ NOI0105-34 求阶乘的和. 问题链接:Bailian2684 求阶乘的和. 总时间限制: 1000ms 内存限制: 65536kB 描述 给定正整数n,求不大于n的正整数的阶 ...
- C++算法篇:DFS超详细解析(2)--- tarjan算法求无向图割边
<<<上一篇 系列文章目录 ①:无向图基本概念 ②:tarjan算法求无向图割边 前言 第一次写算法,讲得肯不透彻,有误还请指教awa 文章目录 系列文章目录 一.回顾 二.tarj ...
- POJ 1966 Cable TV Network【无向图点连通度 最小割 E-K算法求最大流】
题目描述: 给你一个无向图,问你最少删掉几个点,使这个图成不连通. 解题报告: 概念 (1)一个具有 N 个顶点的图,在去掉任意 k-1 个顶点后 (1<=K<=N) 所得的子图仍连通, ...
最新文章
- 2020-08-23logloss对数损失函数
- zcmu-2129(拓扑排序)
- vue之登录和token处理
- python做接口自动化测试仪器经销商_Python接口自动化测试的实现
- Maven学习总结(28)——Maven+Nexus+Myeclipse集成
- CLin 和 IDEA创建文件时自动添加作者和时间信息 + 多个.cpp文件在CLion下运行问题...
- win8/10上的应用程序怎样以兼容模式运行?
- 流浪北京的日子(二)
- 《基 于 N Gram 的无词典 中文分词算法》 n-gram读感
- MYSQL 数据库配置优化
- 三菱PLC仿真软件的序列号
- 第二届ATI获奖自动化测试工具介绍
- dojo实现省份地市级联---省份数据源
- 深度网络自适应DCC算法
- 港股美股打新截然不同!教你玩转美股打新
- 局域网内两台电脑设置共享文件夹并访问
- html是什么意思 它是一种什么样的语言,HTML 是什么?
- zznu 1914 asd的甩锅计划
- 如何使用python 执行命令行传入的代码
- Vue.js:从安装到快速创建脚手架项目,解决刚创建完出现的parsing error:No Bable config file detected报错