思路:

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

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

  1. //By SiriusRen
  2. #include <queue>
  3. #include <cstdio>
  4. #include <cstring>
  5. #include <algorithm>
  6. using namespace std;
  7. #define N 5555
  8. int n,m,xx,yy,inf=0x3fffff,ans,ed=105;
  9. struct Node{int x,y;}point[N];
  10. struct Dinic{
  11. int first[107],next[N],v[N],w[N],tot,vis[107];
  12. void solve(int x,int y){
  13. memset(first,-1,sizeof(first)),tot=0;
  14. add(0,x,inf),add(x,x+n,inf),add(y,y+n,inf),add(y+n,105,inf);
  15. for(int i=1;i<=n;i++)add(i,i+n,1);
  16. 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);
  17. ans=min(ans,x=flow());
  18. }
  19. void add(int x,int y,int z){Add(x,y,z),Add(y,x,0);}
  20. void Add(int x,int y,int z){w[tot]=z,v[tot]=y,next[tot]=first[x],first[x]=tot++;}
  21. bool tell(){
  22. memset(vis,-1,sizeof(vis)),vis[0]=0;
  23. queue<int>q;q.push(0);
  24. while(!q.empty()){
  25. int t=q.front();q.pop();
  26. for(int i=first[t];~i;i=next[i])
  27. if(vis[v[i]]==-1&&w[i])
  28. vis[v[i]]=vis[t]+1,q.push(v[i]);
  29. }
  30. return vis[ed]!=-1;
  31. }
  32. int zeng(int x,int y){
  33. if(x==ed)return y;
  34. int r=0;
  35. for(int i=first[x];~i&&y>r;i=next[i])
  36. if(vis[v[i]]==vis[x]+1&&w[i]){
  37. int t=zeng(v[i],min(y-r,w[i]));
  38. w[i]-=t,w[i^1]+=t,r+=t;
  39. }
  40. if(!r)vis[x]=-1;
  41. return r;
  42. }
  43. int flow(){
  44. int jy=0,tmp;
  45. while(tell())while(tmp=zeng(0,inf))jy+=tmp;
  46. return jy;
  47. }
  48. }dinic;
  49. int main(){
  50. while(~scanf("%d%d",&n,&m)){
  51. ans=inf;
  52. for(int i=1;i<=m;i++){
  53. scanf(" (%d,%d)",&point[i].x,&point[i].y);
  54. point[i].x++,point[i].y++;
  55. }
  56. for(int i=1;i<=n;i++)
  57. for(int j=1;j<=n;j++)
  58. if(i!=j)dinic.solve(i,j);
  59. if(ans==inf)printf("%d\n",n);
  60. else printf("%d\n",ans);
  61. }
  62. }

POJ 1966 求无向图点连通度的更多相关文章

  1. poj 1966(求点连通度,边连通度的一类方法)

    题目链接:http://poj.org/problem?id=1966 思路:从网上找了一下大牛对于这类问题的总结:图的连通度问题是指:在图中删去部分元素(点或边),使得图中指定的两个点s和t不连通  ...

  2. poj 3895(求无向图的最大简单环)

    题目链接:http://poj.org/problem?id=3895 思想很简单,就是dfs,并且用一个数组记录到该节点所走过的长度,然后如果遇到已经走过的,就说明存在环了, 更新一下ans. /* ...

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

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

  4. POJ 1966

    求的是无向图的点连通度.开始便想到网络流,既然选的是点,当然就要拆点加边了.但无论如何也不敢往枚举源汇点的方向想,因为网络流复习度很高.看看网上大牛的,都是枚举,再看数据,原来N才50个点,枚举无压力 ...

  5. FZU 2090 旅行社的烦恼 floyd 求无向图最小环

    题目链接:旅行社的烦恼 题意是求无向图的最小环,如果有的话,输出个数,并且输出权值. 刚刚补了一发floyd 动态规划原理,用了滑动数组的思想.所以,这个题就是floyd思想的变形.在k从1到n的过程 ...

  6. Tarjan求无向图割点、桥详解

    tarjan算法--求无向图的割点和桥   一.基本概念 1.桥:是存在于无向图中的这样的一条边,如果去掉这一条边,那么整张无向图会分为两部分,这样的一条边称为桥无向连通图中,如果删除某边后,图变成不 ...

  7. tarkjan求无向图割点模板

    #include<bits/stdc++.h> using namespace std; typedef long long ll; int n,m; ; ; struct node { ...

  8. [Tarjan系列] Tarjan算法求无向图的双连通分量

    这篇介绍如何用Tarjan算法求Double Connected Component,即双连通分量. 双联通分量包括点双连通分量v-DCC和边连通分量e-DCC. 若一张无向连通图不存在割点,则称它为 ...

  9. [Tarjan系列] Tarjan算法求无向图的桥和割点

    RobertTarjan真的是一个传说级的大人物. 他发明的LCT,SplayTree这些数据结构真的给我带来了诸多便利,各种动态图论题都可以用LCT解决. 而且,Tarjan并不只发明了LCT,他对 ...

随机推荐

  1. [HNOI2004]打砖块(敲砖块)

    题目:codevs1257.洛谷P1437 题目大意:有一些砖块呈倒三角形状,每块砖敲掉后有一个分数.除第一行外,敲掉一块砖必须先把上面两块砖敲掉.现在你能敲m块砖,求能得到的最大分数. 解题思路:此 ...

  2. 用centos镜像 制作本地yum源

    1.上传iso镜像 2.挂载镜像到相应目录 mkdir /yumiso #创建目录mount -t iso9660 /dev/cdrom/sr0 /yumiso #挂载镜像文件到对应目录 3.备份旧的 ...

  3. 通过唯一ID实现简单的日志跟踪实现

    在实际项目中,通知我们需要记录一些日志,方便问题核查.但是日志多了就很容易混乱,请求,响应,执行中的日志无法对应,这时就需要为请求进行标记唯一ID来进行跟踪. /** * 记录请求日志 * * Cla ...

  4. 紫书 习题 8-20 UVa 1620 (找规律+求逆序对)

    这道题看了半天没看出什么规律, 然后看到别人的博客, 结论是当n为奇数且逆序数为奇数的时候 无解, 否则有解.但是没有给出证明, 在网上也找到详细的证明--我也不知道是为什么-- 求逆序对有两种方法, ...

  5. Mysql学习总结(26)——MySQL子查询

    mysql中虽然有连接查询实现多表连接查询,但是连接查询的性能很差,因此便出现了子查询. 1.理论上,子查询可以出现在查询语句的任何位置,但实际应用中多出现在from后和where后.出现在from后 ...

  6. C#-反射知识点(转载)

    反射的用途:    (1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例.     (2)使用Module了解包含模块的程序集以及模块中的 ...

  7. 洛谷 P1193 洛谷团队训练VS传统团队训练

    P1193 洛谷团队训练VS传统团队训练 题目背景 “在中学的信息学教育领域,洛谷无疑是一个相当受欢迎的辅助网站.同时有百余所学校正在通过洛谷进行信息学竞赛(以后简称OI)的教育.洛谷之所以如此受欢迎 ...

  8. python __future__ 的几种特性

    今天看tensorflow的代码,看到python里面有这么几句: from __future__ import absolute_import from __future__ import divi ...

  9. XXXfragment that is not a fragment错误,fragment认不出来

    要注意的是fragment事实上是有两个版本号的,一个是 import android.support.v4.app.Fragment; 另外一个是 import android.app.Fragme ...

  10. Unity游戏开发--30s制作精美地图

    "君子生非异也.善假于物也"--<劝学>荀子 引用这句话的目的,是我觉得有时候.利用工具来提高游戏开发效率是很必要的. 利用工具,解放程序员双手. 今天想给大家介绍下. ...