
图论—网络流
文章平均质量分 81
Ezereal
这个作者很懒,什么都没留下…
展开
-
hdu 1532 Drainage Ditches(EK算法)
输入m n, m是边数,n是点数。 接下来m行: 起点,终点,最大流量。 求以 1 为源点, n为汇点的最大流。 裸的最大流算法 #include #include #include #include #include #include #include #include #include #include #include #include us原创 2016-03-17 20:04:30 · 485 阅读 · 0 评论 -
Educational Codeforces Round 8 F. Bear and Fair Set(最大流 | Hall定理)★
题意: 给定N,B,Q≤104,N能被5整除 N为set大小(无相同元素),元素范围为[1,B],需满足set里元素模5的余数为[0,4]的元素个数相等 Q个条件,bi cnti,表示[1,bi]应该有cnti个数 问这种set是否存在,存在输出“fair”,否则“unfair” 分析: 把题目条件(B,N)和Q次询问一起按照Bi排序,这样形成了Q+1个不原创 2016-08-31 17:31:47 · 1176 阅读 · 0 评论 -
IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) D. Delivery Bears 二分+网络流(循环写二分,否则T。。。)
题意 给一个图,每个边有边权,然后有x只熊,每个熊都要背负一样重量的货物,每头熊通过一条路径到i,每条边被所有熊经过的次数乘于货物重量不能大于边权,然后问你最大的货物总重量是多少 每只熊都必须要用,每个熊背负的货物重量一致,所以等价于求每只熊背负的货物的最大重量 题解: 比较显然的是二分+最大流 然后每条边的cap就是该边的边权除以你二分的答案值。 然后跑一发最大流原创 2016-09-12 18:53:04 · 338 阅读 · 0 评论 -
poj 3155 Hard Life (最大密度子图)
题意:一个公司有n个人,给出了一些有冲突的人的对数(u,v),公司决定裁人,那么总裁现在要裁掉冲突率最高的那些人(冲突率=在这些人中存在的冲突数/人数)。就是求出一些点,这些点之间的边数/点数最大。最大密度子图。 思路:胡伯涛的论文《最小割模型在信息学竞赛中的应用》介绍了两种方法: 第一种:转换为最大权闭合图的模型来求解: 设max g = f(x)= |E‘|/|V’| ,找一原创 2016-08-22 16:03:06 · 558 阅读 · 0 评论 -
最大密度子图 (带点权,带边权)
转载自:胡伯涛《最小割模型在信息学竞赛中的应用》转载 2016-08-22 16:13:55 · 1085 阅读 · 0 评论 -
poj 2125 Destroying The Graph(最小点权覆盖集)
【题意】 给出一个有向图,定义两种操作:w+(i)删掉i点的所有入边w-(i)删掉i点的所有出边,每种 操作都有对应的花费,问删掉所有边的最小花费。 【解答】 建图方法:对于每个点i,拆点为i,i+n,对于入边,从i+n想汇点T连边,值为入边花费;对于出边,从S向i连边,权值为出边花费。m组相连的边(x,y),从x向y+n连边, 费用INF。求出最小割。 然后是计算删除的原创 2016-08-22 18:36:01 · 617 阅读 · 0 评论 -
2016 ACM/ICPC Asia Regional Qingdao Online hdu 5889 Barricade (最短路+最小割)
题意: 题意转化过来就是给定一张图,每条边长度都是1,还有一个切割这条边的代价。现在有一伙人从第n个点到第1个点走最短路,问最少需要花费多少代价阻断这伙人的路线 题解: 很显然就是处理出最短路,按照最短路建网络流的边,跑一遍最小割就好。 #include #include #include #include #include #include #include #includ原创 2016-09-17 18:36:25 · 487 阅读 · 0 评论 -
HDU 4807 Lunch Time(费用流)★
转载自:http://blog.youkuaiyun.com/xtttgo/article/details/51923505 题意:告诉你一些单向边,问你k个人最快能多久从0点到达n-1点。 思路:这题可以看出是费用流,但是费用流只能求出最大流和最小费用,而且是包括所有增广路的。但是实际上,每条路每秒钟都可以进入一批人,所以在一些情况下,可以考虑等待一段时间走短的路,而不是每条路都直接进入。所以我们转载 2016-09-08 08:13:36 · 797 阅读 · 0 评论 -
spoj839 Optimal Marks (最小割经典模型 位拆分)
转载自:http://blog.youkuaiyun.com/baidu_23081367/article/details/52403163 题目大意: 给定一张图,每个点有一个数字,有的点没有数字。 给所有点涂上数字,使得任意直接相连的2个点的数字,xor值的和最小。 对于xor运算,每一位之间没有关系。所以题目首先拆分成31个小问题。。求最后每个数字的每一位(二进制位)的数字。转载 2016-09-08 09:41:51 · 646 阅读 · 0 评论 -
最小割总结
转载自:http://blog.youkuaiyun.com/acm_fighting/article/details/52198167 割[T,S]和割[S,T]是不同的 在一个流网络G=(V,E)中,设其中任意一个流为f,任意一个割为c[S,T],必有|f|=c[S,T] 找寻最小割S中的点集:先求最大流,再在最大流f后的残留网络Gf中,从S进行DFS,遍历到的点便是S中的集合 需要转载 2016-09-08 09:45:12 · 834 阅读 · 0 评论 -
scu oj 4442 Party(2015年四川省acm程序设计竞赛)★ ★ ★
转载自:http://blog.youkuaiyun.com/u012127882/article/details/47397919 题目意思:有n个青蛙喝茶,有些青蛙只能喝红茶,有些青蛙只能喝绿茶,有些青蛙红茶绿茶都可以喝。现在m对青蛙之间有矛盾,有矛盾的青蛙他们不能喝一样的茶,对于没每一只青蛙,可以给他w[i]金币,让他不喝茶,他就不会和任何青蛙矛盾了。最少需要给多少钱让他们之间没有矛盾存在。这题里面还转载 2016-08-28 18:18:50 · 1489 阅读 · 0 评论 -
POJ2516-Minimum Cost(★ )
转载请注明出处:優YoU http://blog.youkuaiyun.com/lyy289065406/article/details/6742534 大致题意: 有N个供应商,M个店主,K种物品。每个供应商对每种物品的的供应量已知,每个店主对每种物品的需求量的已知,从不同的供应商运送不同的货物到不同的店主手上需要不同的花费,又已知从供应商Mj送第kind种货物的单位数量到店主Ni转载 2016-08-18 11:50:18 · 719 阅读 · 0 评论 -
poj 3469 Dual Core CPU(dinic算法)
题意: 有一些模块(modules)和一个双核处理器,一个模块可以在任意一个核上处理,每个核对应每个模块有个开销。现在有一些模块间需要数据交换,如果需要数据交换的模块在一个核上处理,则不需要额外开销,否则需要加上一个开销。现在需要完成所有模块,问最小需要多少开销。 如果没有这个额外的开销,那么每个模块只要选择开销小的那个核就行了。额外的开销给选择加上了限制。 题解: 最小割模型。 S和T原创 2016-04-09 16:34:58 · 442 阅读 · 0 评论 -
poj 3281 Dining (最大流解决匹配问题)
题目大意:有F种食物,D种饮料,N头奶牛,只能吃某种食物和饮料(而且只能吃特定的一份)一种食物被一头牛吃了之后,其余牛就不能吃了 要求输出最多分配能够满足的牛的数量 题解:解题思路:建图,有2*n+f+d+2个顶点,0表示源点,2*n+f+d+1表示汇点,由源点指向食物,再由食物指向牛,牛再指向对应的饮料,饮料再指向汇点 当然要使每一头牛都对应每一份食物与饮料,所以应该牛i指向牛i再指向饮料原创 2016-04-09 15:23:14 · 473 阅读 · 0 评论 -
poj 3281 Dining (sap模板)
题目大意:有F种食物,D种饮料,N头奶牛,只能吃某种食物和饮料(而且只能吃特定的一份)一种食物被一头牛吃了之后,其余牛就不能吃了 要求输出最多分配能够满足的牛的数量 题解:解题思路:建图,有2*n+f+d+2个顶点,0表示源点,2*n+f+d+1表示汇点,由源点指向食物,再由食物指向牛,牛再指向对应的饮料,饮料再指向汇点 当然要使每一头牛都对应每一份食物与饮料,所以应该牛i指向牛i再指向饮料原创 2016-08-17 10:40:00 · 291 阅读 · 0 评论 -
hdu 5855 Less Time, More profit(最大权闭合子图)
题意: 给了n个工厂,m个商店,每个商店只有在要求的工厂都建好后才能获得利润,而建一个工厂需要花费和时间,现在问你能获得利润至少为l的最短时间是多少,在这个时间下的最大利润是多少; 思路: 最大权闭合子图的算法就是点权为正的和减去最大流,跑最大流的图是这样建的:原图中u→v,那就u→v的cap为inf,i点权为正cap[s][i]=w[i],否则cap[i][e]=-w[i]; 枚举原创 2016-08-17 12:58:19 · 470 阅读 · 0 评论 -
HDU 4289 Control(最大流+拆点)
题意:一个无向图,点带权值,有源点S,汇点T,问最少拆出多少权值的点使ST不连通(include S or T); 可以转化为最大流问题,将每个点P拆分成 P与P',使P->P',边权值赋为点权值,建边(P,Q)时只需连接(P',Q),(Q',P)边权值为INF即可。 跑最大流是sap(2*st,2*ed+1,2*n),一开始想错了 #include #include #in原创 2016-08-17 21:58:37 · 370 阅读 · 0 评论 -
UVA 10480 - Sabotage (最大流)
这道题的意思要把一个图分成两部分,要把点1和点2分开。隔断每条边都有一个花费,求最小花费的情况下,应该切断那些边。 这题很明显是最小割,也就是最大流。把1当成源点,2当成汇点。 问题是要求最小割应该隔断那条边。 思路就是求最大流。然后残留网络下,和源点连通的分在源点一点,和汇点连通的分在汇点一边。 这样貌似就解决了。 #include #include #include #转载 2016-08-17 22:15:46 · 497 阅读 · 0 评论 -
hdu 2732 Leapin' Lizards (最大流)★
题目意思看起来比较难懂。 题目是说一个n*m的迷宫中,有每个格子有柱子。柱子高度为0~3,高度为0的柱子是不能站的(高度为0就是没有柱子) 在一些有柱子的格子上有一些蜥蜴,一次最多跳距离d,相邻格子的距离是1,只要跳出迷宫就是安全的。 这个距离是曼哈顿距离(好像是的)。 蜥蜴一次最多跳距离d,但是起跳的地方的柱子高度会减一,一个柱子同一时间只能有一个蜥蜴 要求最少几个不能逃出迷宫。 具原创 2016-08-17 22:58:08 · 579 阅读 · 0 评论 -
HDU 3605 Escape(网络流 + 状压简化 )
题意: 有 n 个人选择 m 个星球居住,选择情况和星球居住上限有限制,问是否能全部满足要求。 解题思路: 开始想到了最裸的建图,果然 TLE 了。 由于 n 太大(1e5) m 很小(10),所以我们可以进行状态压缩,将 n 个人等价划分成 1 建边:S -> mask,cap = cnt[mask] ; mask -> planet of mask,cap =原创 2016-08-17 23:14:35 · 296 阅读 · 0 评论 -
poj 2195 Going Home (最小费用最大流)
大致题意: 给定一个N*M的地图,地图上有若干个man和house,且man与house的数量一致。man每移动一格需花费$1(即单位费用=单位距离),一间house只能入住一个man。现在要求所有的man都入住house,求最小费用。 解题思路: 费用流问题。 构图: 把man作为一个顶点集合U,house作为另一个顶点集合V,把U中所有点到V中所有点连线,费原创 2016-08-18 09:53:28 · 623 阅读 · 0 评论 -
HDU 3416 Marriage Match IV (最短路判断建边+最大流)
转载自:http://blog.youkuaiyun.com/cquwel/article/details/48252635 题意就是从起点到终点有几条最短路,这里有一个条件,就是每条边只能被选择一次,也就是说,1->2这条边在第一条最短路里面,那么就不能放在第二条最短路里面。首先如何判断一条边是否是最短路里面的边,那就是正向做一次最短路,反向做一次最短路,d[i]表示从起点到i点的最短距离,dr[i]表示转载 2016-09-08 09:53:40 · 363 阅读 · 0 评论