nyoj 667 碟战 最小割(最大流)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=677
题意转化:将点0与所有的有间谍的点相连,则题意变为求点0到点n的最小割,直接套最大流EK算法~
下面代码顶点是从1~n+1
代码入下:
- #include "stdio.h"
- #include "string.h"
- #include "queue"
- using namespace std;
- #define N 205
- #define INF 0x3fffffff
- int start,end;
- int route[N],dis[N];
- int map[N][N];
- int MIN(int x,int y){ return x<y?x:y; }
- int BFS()
- {
- int i;
- int x,y;
- memset(route,-1,sizeof(route));
- dis[start] = INF;
- queue<int> q;
- q.push(start);
- while(!q.empty())
- {
- x = q.front();
- q.pop();
- for(y=1; y<=end; ++y)
- {
- if(route[y]==-1 && map[x][y]!=0)
- {
- route[y] = x;
- dis[y] = MIN(dis[x],map[x][y]);
- q.push(y);
- }
- }
- }
- if(route[end]==-1) return 0;
- return dis[end];
- }
- int EK(int n)
- {
- int x,y;
- int ans=0;
- int kejia;
- while(kejia = BFS())
- {
- ans += kejia;
- y = end;
- while(y!=start)
- {
- x = route[y];
- map[x][y] -= kejia;
- map[y][x] += kejia;
- y = x;
- }
- }
- return ans;
- }
- int main()
- {
- int T,Case;
- int i,k;
- int n,m,p;
- int x,y;
- scanf("%d",&T);
- for(Case=1; Case<=T; ++Case)
- {
- memset(map,0,sizeof(map));
- scanf("%d%d%d",&n,&m,&p);
- for(i=0; i<p; ++i)
- {
- scanf("%d",&k);
- k++;
- map[1][k] = map[k][1] = INF;
- }
- while(m--)
- {
- scanf("%d %d",&x,&y);
- x++; y++;
- map[x][y] = map[y][x] = 1;
- }
- start = 1; end = n+1;
- printf("Case #%d: %d\n",Case,EK(end));
- }
- }
nyoj 667 碟战 最小割(最大流)的更多相关文章
- hdu4289 最小割最大流 (拆点最大流)
最小割最大流定理:(参考刘汝佳p369)增广路算法结束时,令已标号结点(a[u]>0的结点)集合为S,其他结点集合为T=V-S,则(S,T)是图的s-t最小割. Problem Descript ...
- 【BZOJ-1797】Mincut 最小割 最大流 + Tarjan + 缩点
1797: [Ahoi2009]Mincut 最小割 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1685 Solved: 724[Submit] ...
- BZOJ-1001 狼抓兔子 (最小割-最大流)平面图转对偶图+SPFA
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Submit: 14686 Solved: 3513 [Submit][ ...
- hdu1569 方格取数(2) 最大点权独立集=总权和-最小点权覆盖集 (最小点权覆盖集=最小割=最大流)
/** 转自:http://blog.csdn.net/u011498819/article/details/20772147 题目:hdu1569 方格取数(2) 链接:https://vjudge ...
- BZOJ1001:狼抓兔子(最小割最大流+vector模板)
1001: [BeiJing2006]狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨, ...
- HDU1565 方格取数(1) —— 状压DP or 插头DP(轮廓线更新) or 二分图点带权最大独立集(最小割最大流)
题目链接:https://vjudge.net/problem/HDU-1565 方格取数(1) Time Limit: 10000/5000 MS (Java/Others) Memory L ...
- 最小割最大流定理&残量网络的性质
最小割最大流定理的内容: 对于一个网络流图 $G=(V,E)$,其中有源点和汇点,那么下面三个条件是等价的: 流$f$是图$G$的最大流 残量网络$G_f$不存在增广路 对于$G$的某一个割$(S,T ...
- Destroying The Graph 最小点权集--最小割--最大流
Destroying The Graph 构图思路: 1.将所有顶点v拆成两个点, v1,v2 2.源点S与v1连边,容量为 W- 3.v2与汇点连边,容量为 W+ 4.对图中原边( a, b ), ...
- HDU(2485),最小割最大流
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2485 Destroying the bus stations Time Limit: 40 ...
随机推荐
- ADO.NET 基础
*程序要和数据库交互要通过ADO.NET进行,通过ADO.NET就能在程序中执行SQL了,ADO.NET中提供了对各种不同数据库的统一操作接口. 1.连接SQLServer 连接字符串,程序通过链接字 ...
- 【JavaScript回顾】对象创建的几种模式
组合使用构造函数模式和原型模式 创建自定义类型的常见方式,就是组合使用构造函数模式与原型模式.构造函数模式用于定义实 例属性,而原型模式用于定义方法和共享的属性.结果,每个实例都会有自己的一份实例属性 ...
- Diy页面服务端渲染解决方案
1. 问题由来 在移动互联网电商领域,运营每天需要搭建多个促销页面来吸引用户去点击去购买,一开始程序员临时写个新页面去实现,可这些页面可以用几次就不用了,每次创建新页面去实现费时费力,而且,电商的运营 ...
- jquery实现下拉框功能
说不清楚,直接上图 <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtm ...
- MVVM(Model-View-View-Model)简单分析(及代码示例)
项目组,现在用的MVVM(Model-View-View-Model)模式,搞了一个多月,感觉有点明白了.
- 演练:使用Xamarin.Forms开发产品介绍性质的应用(VB版)
概述 Xamarin这个使用mono和.net core的跨平台开发框架这几年在不断发展.被微软收购后的Xamarin为个人开发者提供了免费版的Xamarin for Visual Studio,吸引 ...
- 根据IP地址获取地址所在城市帮助类(IPHelper)
很多类库都是需要在长时间的编写过程中进行积累的,进入软件编程行业已经是第五个年头了,从2011年写下第一行代码到现在不知道已经写了多少行代码了,时间也过得挺快的.最近事情比较多,也很少写博客了,最近项 ...
- JavaMail入门第五篇 解析邮件
上一篇JavaMail入门第四篇 接收邮件中,控制台打印出的内容,我们无法阅读,其实,让我们自己来解析一封复杂的邮件是很不容易的,邮件里面格式.规范复杂得很.不过,我们所用的浏览器内置了解析各种数据类 ...
- Windows下 C++ 实现匿名管道的读写操作
由于刚弄C++没多久,部分还不熟练,最近又由于开发需求要求实现与其他程序进行通信,瞬间就感觉想到了匿名通信.于是自己查阅了一下资料,实现了一个可读可写的匿名管道: 源代码大部分都有注释: Pipe.h ...
- question about import google file
1. question descibe; once, one css file(app.css) of my web project has sentence like this: @import u ...