题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=677

题意转化:将点0与所有的有间谍的点相连,则题意变为求点0到点n的最小割,直接套最大流EK算法~

下面代码顶点是从1~n+1

代码入下:

  1. #include "stdio.h"
  2. #include "string.h"
  3. #include "queue"
  4. using namespace std;
  5.  
  6. #define N 205
  7. #define INF 0x3fffffff
  8.  
  9. int start,end;
  10. int route[N],dis[N];
  11. int map[N][N];
  12.  
  13. int MIN(int x,int y){ return x<y?x:y; }
  14.  
  15. int BFS()
  16. {
  17. int i;
  18. int x,y;
  19. memset(route,-1,sizeof(route));
  20. dis[start] = INF;
  21. queue<int> q;
  22. q.push(start);
  23. while(!q.empty())
  24. {
  25. x = q.front();
  26. q.pop();
  27. for(y=1; y<=end; ++y)
  28. {
  29. if(route[y]==-1 && map[x][y]!=0)
  30. {
  31. route[y] = x;
  32. dis[y] = MIN(dis[x],map[x][y]);
  33. q.push(y);
  34. }
  35. }
  36. }
  37. if(route[end]==-1) return 0;
  38. return dis[end];
  39. }
  40.  
  41. int EK(int n)
  42. {
  43. int x,y;
  44. int ans=0;
  45. int kejia;
  46. while(kejia = BFS())
  47. {
  48. ans += kejia;
  49. y = end;
  50. while(y!=start)
  51. {
  52. x = route[y];
  53. map[x][y] -= kejia;
  54. map[y][x] += kejia;
  55. y = x;
  56. }
  57. }
  58. return ans;
  59. }
  60.  
  61. int main()
  62. {
  63. int T,Case;
  64. int i,k;
  65. int n,m,p;
  66. int x,y;
  67. scanf("%d",&T);
  68. for(Case=1; Case<=T; ++Case)
  69. {
  70. memset(map,0,sizeof(map));
  71. scanf("%d%d%d",&n,&m,&p);
  72. for(i=0; i<p; ++i)
  73. {
  74. scanf("%d",&k);
  75. k++;
  76. map[1][k] = map[k][1] = INF;
  77. }
  78. while(m--)
  79. {
  80. scanf("%d %d",&x,&y);
  81. x++; y++;
  82. map[x][y] = map[y][x] = 1;
  83. }
  84. start = 1; end = n+1;
  85. printf("Case #%d: %d\n",Case,EK(end));
  86. }
  87. }

nyoj 667 碟战 最小割(最大流)的更多相关文章

  1. hdu4289 最小割最大流 (拆点最大流)

    最小割最大流定理:(参考刘汝佳p369)增广路算法结束时,令已标号结点(a[u]>0的结点)集合为S,其他结点集合为T=V-S,则(S,T)是图的s-t最小割. Problem Descript ...

  2. 【BZOJ-1797】Mincut 最小割 最大流 + Tarjan + 缩点

    1797: [Ahoi2009]Mincut 最小割 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1685  Solved: 724[Submit] ...

  3. BZOJ-1001 狼抓兔子 (最小割-最大流)平面图转对偶图+SPFA

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Submit: 14686 Solved: 3513 [Submit][ ...

  4. hdu1569 方格取数(2) 最大点权独立集=总权和-最小点权覆盖集 (最小点权覆盖集=最小割=最大流)

    /** 转自:http://blog.csdn.net/u011498819/article/details/20772147 题目:hdu1569 方格取数(2) 链接:https://vjudge ...

  5. BZOJ1001:狼抓兔子(最小割最大流+vector模板)

    1001: [BeiJing2006]狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨, ...

  6. HDU1565 方格取数(1) —— 状压DP or 插头DP(轮廓线更新) or 二分图点带权最大独立集(最小割最大流)

    题目链接:https://vjudge.net/problem/HDU-1565 方格取数(1) Time Limit: 10000/5000 MS (Java/Others)    Memory L ...

  7. 最小割最大流定理&残量网络的性质

    最小割最大流定理的内容: 对于一个网络流图 $G=(V,E)$,其中有源点和汇点,那么下面三个条件是等价的: 流$f$是图$G$的最大流 残量网络$G_f$不存在增广路 对于$G$的某一个割$(S,T ...

  8. Destroying The Graph 最小点权集--最小割--最大流

    Destroying The Graph 构图思路: 1.将所有顶点v拆成两个点, v1,v2 2.源点S与v1连边,容量为 W- 3.v2与汇点连边,容量为 W+ 4.对图中原边( a, b ), ...

  9. HDU(2485),最小割最大流

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2485 Destroying the bus stations Time Limit: 40 ...

随机推荐

  1. ADO.NET 基础

    *程序要和数据库交互要通过ADO.NET进行,通过ADO.NET就能在程序中执行SQL了,ADO.NET中提供了对各种不同数据库的统一操作接口. 1.连接SQLServer 连接字符串,程序通过链接字 ...

  2. 【JavaScript回顾】对象创建的几种模式

    组合使用构造函数模式和原型模式 创建自定义类型的常见方式,就是组合使用构造函数模式与原型模式.构造函数模式用于定义实 例属性,而原型模式用于定义方法和共享的属性.结果,每个实例都会有自己的一份实例属性 ...

  3. Diy页面服务端渲染解决方案

    1. 问题由来 在移动互联网电商领域,运营每天需要搭建多个促销页面来吸引用户去点击去购买,一开始程序员临时写个新页面去实现,可这些页面可以用几次就不用了,每次创建新页面去实现费时费力,而且,电商的运营 ...

  4. jquery实现下拉框功能

    说不清楚,直接上图 <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtm ...

  5. MVVM(Model-View-View-Model)简单分析(及代码示例)

    项目组,现在用的MVVM(Model-View-View-Model)模式,搞了一个多月,感觉有点明白了.

  6. 演练:使用Xamarin.Forms开发产品介绍性质的应用(VB版)

    概述 Xamarin这个使用mono和.net core的跨平台开发框架这几年在不断发展.被微软收购后的Xamarin为个人开发者提供了免费版的Xamarin for Visual Studio,吸引 ...

  7. 根据IP地址获取地址所在城市帮助类(IPHelper)

    很多类库都是需要在长时间的编写过程中进行积累的,进入软件编程行业已经是第五个年头了,从2011年写下第一行代码到现在不知道已经写了多少行代码了,时间也过得挺快的.最近事情比较多,也很少写博客了,最近项 ...

  8. JavaMail入门第五篇 解析邮件

    上一篇JavaMail入门第四篇 接收邮件中,控制台打印出的内容,我们无法阅读,其实,让我们自己来解析一封复杂的邮件是很不容易的,邮件里面格式.规范复杂得很.不过,我们所用的浏览器内置了解析各种数据类 ...

  9. Windows下 C++ 实现匿名管道的读写操作

    由于刚弄C++没多久,部分还不熟练,最近又由于开发需求要求实现与其他程序进行通信,瞬间就感觉想到了匿名通信.于是自己查阅了一下资料,实现了一个可读可写的匿名管道: 源代码大部分都有注释: Pipe.h ...

  10. question about import google file

    1. question descibe; once, one css file(app.css) of my web project has sentence like this: @import u ...