网络流笔记

最小点覆盖:选一些点,这些点能覆盖所有的边

最大独立集:选一些点,互不为自己的邻居

最近做了些网络流

网络流24题*5

bzoj 1412

最小割:s->1 1->2 1->0 0->2 2->T

因为我们要把这些点分成两个集合,一些点是羊的范围,一些点是狼的范围,因为要把图分成若干个块,所以空地和空地也要连

比如说

4 1

1

0

0

2

空地不连就炸了

bzoj 1497

这道题是个很有意思的模型

建图:ans=sigma(1,m,c[i])

ins(s,顾客,c) ins(顾客,塔,inf) ins(塔,T,p)

然后ans-最小割

为什么是对的呢?因为我们想要满足一个人,必须买两座塔,那么也就是把塔到T的两条边割掉,如果不满足,那么就把s和顾客的边割掉,对于一个顾客,他到T的路径只有两条,如果我们只割掉一条,剩下两条不割,那么很明显,这个图还可以增广,如果我们割掉两座塔,那么自己的c就肯定不会割掉了,因为到T的路径已经被堵掉了,如果把c割掉了,那么两座塔就可割可不割,因为至少这条道路被割掉了

时间: 2024-08-09 10:35:34

网络流笔记的相关文章

[笔记] 网络流-最大流 POJ-1273\HDU-4240

[1] POJ-1273 题目:http://poj.org/problem?id=1273 最直接的最大流问题,用了Ford-Fulkerson方法,DFS随机搜索增广路. 算法原理参考:http://blog.csdn.net/smartxxyx/article/details/9293665 /************************ POJ-1273* Ford-Fulkerson***********************/#include <stdio.h> #inclu

《网络流学习笔记05--最小割最大流问题》

[图的割:定义] 指的是对于某个顶点集合S属于V,从S出发指向S外部的那些边的集合,记为割(S,V\S]),边的容量之和称为割的容量.如果有s属于S,而t属于V\S,那么此时的割称为s-t割,如果将网络中的s-t割所包含的边都割去,就无法找到从源点s到汇点t 的路径. 割:设Ci为网络N中一些弧的集合,若从N中删去Ci中的所有弧,即:使得从顶点Vs到顶点Vt的路集为空集时,称Ci为Vs和Vt间的一个割. 最小割:图中所有的割中,边权值和最小的割为最小割. 实例:如右图所示的割集为 --表示无序对

《网络流学习笔记01--HDU3549》

1.网络流初步. 网络流是一个适用范围相当广泛的模型,相关的算法也很多,这里就几天学习网络流的相关知识做一个总结归纳. (1)最大流问题 如图所示,假设你需要把一些物品从结点s(称为源点)运送到结点t(称为汇点),可以从其他结点中转,图(a)中各条有向边的权表示最多能有多少个物品从这条边的起点直接运送到终点,例如图(a)从结点V3到V2最多可以运送9个物品. 图(b)给出了一种可能的最优方案,其中每条边中的第一个数字表示实际运送的物品数量,第二个数字表示题目中的上限, 我们把求解这样的问题称为最

《网络流学习笔记02--Edmonds-Karp,Ford-Fulkerson,Dinic三种算法实现最大流》

[HDU3549]题目链接:click here 三种方法都用了一下,对比得出EK最少,只用46ms. [Edmonds-Karp算法] 基础的最大流算法,每次BFS寻找最短路进行增广,找出一条残余路径就可以了.然后对残余网络进行增广,不要忘记正向增广,相当于负向减少,也要在图中保存记录. 最后求一个割集来得到最大流,效率O(VE2),"找任意路径"最简单的方法是用DFS,但是数据要稍微增加就会变得较慢,采用BFS,源点和汇点保存在s和t中,净流量保存在变量f中. 代码: /*Edmo

[OI笔记] 最长上升子序列与网络流建模

与最长上升子序列相关的网络流问题: 给定一个序列 A[1..n] ,求出 A 的最长上升子序列长度.并且回答下列询问: (1) 如果每个点只能用一次,能从 A 中取出几个最长上升子序列? (2) 如果第 1 个点和第 n 个点可以用任意次,能从 A 中取出几个最长上升子序列? (3) 如果每个点有一个删除代价 Bi ,最小需要花费多少代价,才能使 A 的最长上升子序列至少减少 1 ? 首先,最长上升子序列问题使用 DP 来求解,从后向前枚举 i ,求出 f[i] 表示以 i 为开头的最长上升子序

《网络流学习笔记04 &amp;&amp; NYOJ 489 哭泣天使(建边,超级源点和汇点)》

链接:click here 题意描述: 哭泣天使 时间限制:1000 ms  |  内存限制:65535 KB 难度:5 描述 Doctor Who乘着Tardis带着Amy来到了一个星球,一开Tadis大门,发现这个星球上有个壮观的石像群,全是一些天使石像,有的石像在哭泣,有的石像像在微笑,共有m行n列,Doctor用"音速起子"扫描了一下整个石像群,得到了每行天使中在哭泣的天使的个数.当他与Amy在这里行走了一段时间之后,Doctor忽然想起了什么,怀疑这些石像是不是传说中的一种黑

《网络流学习笔记03&amp;&amp;POJ1459 Power Network》

题目链接:click here 题意:一个电力网络有n个点,有np个发电站,nc个消耗点,其余的为中转站.m条电缆,中转站既不发电也不耗电.每条电缆都有一个最大容量. 思路:设置一个超级源点和一个超级汇点,将所有的源点和汇点分别放进去,Dinic 算法实现. 注意括号的处理. 代码: #include <math.h> #include <queue> #include <deque> #include <vector> #include <stack

传智播客c/c++公开课学习笔记--Linux网络流媒体服务器的核心代码揭秘

Xinetd 从守护进程的概念可以看出,对于系统所要通过的每一种服务,都必须运行一个监听某个端口连接所发生的守护进程, 这通常意味着资源浪费. 为了解决这个问题,Linux引进了"网络守护进程服务程序"的概念.xinted(extended InterNET daemon) xinetd同时监听多个指定的端口,接受用户请求时,根据请求端口,启动不同的网络服务进程来处理这些用户请求. 可以把xinetd看做一个管理启动服务的管理服务器,它决定把一个客户请求交给哪个程序处理,然后启动相应的

【网络流】网络流学习笔记Part2ISAP算法

说实话ISAP的文献真的不太好找= =而且介绍的没有太详细,不像SAP Dinic比较普及. ISAP其实是改进的SAP算法,要学ISAP就先去看一下SAP好了.(事实上很多人会把ISAP和SAP搞混了.尤其在国内,很多人会直接管ISAP叫SAP) SAP算法(即Edmonds-Karp算法): 不断进行BFS找增广路径,那么最多找V*E次就一定不存在增广路径了. 时间复杂度 O(V*E^2) ISAP算法: 通过维护距离标号使得寻找增广路径的过程被简化从而提高效率.距离标号可以使某个点到汇点s