Cable TV Network

题目抽象:给出含有n个点顶点的无向图,给出m条边。求定点联通度   K

算法:将每个顶点v拆成 v'   v''  ,v'-->v''的容量为1.           对于原图中的边(u,v)   连边   u''--->v'    v''-->u'.    求每对定点的P(u,v);以u为源点,v为汇点。

我们只需固定一个顶点,枚举其它汇点。

 1 #include <iostream>
2 #include <cstdio>
3 #include <cstring>
4 #include <cmath>
5 #include <algorithm>
6 #include <string>
7 #include <vector>
8 #include <set>
9 #include <map>
10 #include <stack>
11 #include <queue>
12 #include <sstream>
13 #include <iomanip>
14 using namespace std;
15 typedef long long LL;
16 const int INF = 0x4fffffff;
17 const double EXP = 1e-5;
18 const int MS = 105;
19 const int SIZE = 100005;
20
21 // 求无向图的顶点连通度 最大流算法
22
23 int cap[MS][MS];
24 int flow[MS][MS]; //将struct c f 拆开成两个数组
25 int que[MS];
26 int pre[MS];
27 int alpha[MS];
28 int qs,qe,nodes;
29 int n,m;
30
31 int max_flow(int source ,int sink)
32 {
33 memset(flow,0,sizeof(flow)); // 0流 开始增加流量
34 int res=0;
35 while(1)
36 {
37 qs=qe=0;
38 que[qe++]=source;
39 memset(pre,-1,sizeof(pre)); // pre可以同时起到flag的作用
40 memset(alpha,-1,sizeof(alpha));
41 alpha[source]=INF;
42 pre[source]=-2; // -2 结束标记,同时又避免了-1,表示未访问
43 while(qs<qe)
44 {
45 int u=que[qs++];
46 for(int v=0;v<nodes;v++)
47 {
48 if(pre[v]==-1&&flow[u][v]<cap[u][v])
49 {
50 que[qe++]=v;
51 pre[v]=u;
52 alpha[v]=min(alpha[u],cap[u][v]-flow[u][v]);
53 }
54 }
55 if(pre[sink]!=-1)
56 {
57 int k=sink;
58 while(pre[k]>=0)
59 {
60 flow[pre[k]][k]+=alpha[sink];
61 flow[k][pre[k]]=-flow[pre[k]][k];
62 k=pre[k];
63 }
64 break;
65 }
66 }
67 if(pre[sink]==-1) //不存在增广路
68 return res;
69 else
70 res+=alpha[sink];
71 }
72 }
73
74 int main()
75 {
76 while(scanf("%d%d",&n,&m)!=EOF)
77 {
78 int a,b,ans=INF;
79 memset(cap,0,sizeof(cap));
80 nodes=2*n;
81 for(int i=0;i<n;i++)
82 cap[i][i+n]=1;
83 for(int i=0;i<m;i++)
84 {
85 scanf(" (%d,%d)",&a,&b);
86 cap[a+n][b]=cap[b+n][a]=INF;
87 }
88 for(int v=1;v<n;v++)
89 {
90 ans=min(ans,max_flow(n,v));
91 }
92 if(ans==INF)
93 ans=n;
94 printf("%d\n",ans);
95 }
96 return 0;
97 }

Cable TV Network 顶点连通度 (最大流算法)的更多相关文章

  1. poj 1966 Cable TV Network 顶点连通度

    题目链接 给一个图, n个点m条边, 求至少去掉多少个点可以使得图不再联通.随便指定一个点为源点, 枚举其他点为汇点的情况, 跑网络流, 求其中最小的情况. 如果最后ans为inf, 说明是一个完全图 ...

  2. POJ 1966 Cable TV Network(顶点连通度的求解)

                               Cable TV Network Time Limit: 1000MS   Memory Limit: 30000K Total Submissi ...

  3. POJ 1966 Cable TV NETWORK(网络流-最小点割集)

                                    Cable TV NETWORK The interconnection of the relays in a cable TV net ...

  4. POJ 1966 Cable TV Network

    Cable TV Network Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 4702   Accepted: 2173 ...

  5. UVA1660 电视网络 Cable TV Network

    题目地址:UVA1660 电视网络 Cable TV Network 枚举两个不直接连通的点 \(S\) 和 \(T\) ,求在剩余的 \(n-2\) 个节点中最少去掉多少个可以使 \(S\) 和 \ ...

  6. POJ 1966 ZOJ 2182 Cable TV Network

    无向图顶点连通度的求解,即最少删除多少个点使无向图不连通. 我校“荣誉”出品的<图论算法理论.实现及其应用>这本书上写的有错误,请不要看了,正确的是这样的: 对于每个顶点,分成两个点,v和 ...

  7. 求割点模板(可求出割点数目及每个割点分割几个区域)POJ1966(Cable TV Network)

    题目链接:传送门 题目大意:给你一副无向图,求解图的顶点连通度 题目思路:模板(图论算法理论,实现及应用 P396) Menger定理:无向图G的顶点连通度k(G)和顶点间最大独立轨数目之间存在如下关 ...

  8. UVA 1660 Cable TV Network 电视网络(无向图,点连通度,最大流)

    题意:给一个无向图,求其点连通度?(注意输入问题) 思路: 如果只有1个点,那么输出“1”: 如果有0条边,那么输出“0”: 其他情况:用最大流解决.下面讲如何建图: 图的连通度问题是指:在图中删去部 ...

  9. ZOJ 2182 Cable TV Network(无向图点割-最大流)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2182 题意:给出一个无向图,问最少删掉多少个顶点之后图变得不连通 ...

随机推荐

  1. localectl set-locale LANG=en_US.UTF-8

    localectl set-locale LANG=en_US.UTF-8    

  2. Docker存储(4)

    一.docker存储资源类型 用户在使用 Docker 的过程中,势必需要查看容器内应用产生的数据,或者需要将容器内数据进行备份,甚至多个容器之间进行数据共享,这必然会涉及到容器的数据管理 (1)Da ...

  3. 记go中一次http超时引发的事故

    记一次http超时引发的事故 前言 分析下具体的代码实现 服务设置超时 客户端设置超时 http.client context http.Transport 问题 总结 参考 记一次http超时引发的 ...

  4. GO文件读写03---使用缓冲读写实现视频文件的拷贝

    package main import ( "bufio" "fmt" "io" "os" ) /* ·使用缓冲读写实现 ...

  5. springboot 搭配redis缓存

    1.引入依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId&g ...

  6. C语言真正的编译过程

    说实话,很多人做了很久的C/C++,也用了很多IDE,但是对于可执行程序的底层生成一片茫然,这无疑是一种悲哀,可以想象到大公司面试正好被问到这样的问题,有多悲催不言而喻,这里正由于换工作的缘故,所以打 ...

  7. sql 数据库使用注意事项

    1.在对数据库表进行操作时,一定要注意当前操作的是哪一个数据库,否则很容易引起不必要的错误.对于master数据库中的数据文件,尽量不要去对其操作. 2.可通过图形方式对数据库进行备份操作,可通过数据 ...

  8. ApplicationListener接口,在spring容器初始化后执行的方法

    一.如果我们希望在Spring容器将所有的Bean都初始化完成之后,做一些操作,那么就可以使用ApplicationListener接口,实现ApplicationListener接口中的onAppl ...

  9. Nginx虚拟主机流量状态模块(nginx-module-vts)使用说明文档(四)

    装完NG,为了拿到各种状态指标,就要对NG做监控. Github 2.3k的开源项目nginx-module-vts没准真是你需求的. 链接数,qps,1xx.2xx,.3xx.4xx.5xx的响应数 ...

  10. 【VBA】查找字符串

    老婆饼里有老婆吗 Sub test() aaa = "老婆饼里有老婆吗" If InStr(aaa, "老婆") <> 0 Then Debug.p ...