网络流
inklutcuah
这个作者很懒,什么都没留下…
展开
-
【bzoj1143】【CTSC2008】【祭祀】【river】
题目大意给出一幅有向图,选取一些点,这些点不能从一个点到达另一个点,求最多能选多少个点。题解其实我们用floyd传递闭包,知道哪些点不能同时取。显然就是求最大独立集,对偶问题是最小点覆盖,等价于二分图最大匹配,建个图后跑一遍网络流就可以了。最大独立集对偶问题是最小点覆盖#code#include#include#include#includ原创 2016-07-05 20:49:09 · 414 阅读 · 0 评论 -
【jzoj100003】【Tree】【网络流】
题目大意解题思路先按树边从上到下建图容量为能走的次数费用为零,能选的链从下往上连容量为一费用为价值的边。跑最大费用循环流即可,这个东西我也是第一次听说。对于本题,我们强制费用为正的边先流,这样我们就破坏了流量平衡,新建源和汇,入度减出度为正的点从源流容量为差值费用为零的边,为负的点流汇容量为差值费用为零的边,跑最小费用最大流,用强制流的费用和减去最小费用即为答案。code#include<set>原创 2017-04-01 21:57:44 · 371 阅读 · 0 评论 -
【jzoj3749】【Srm590】【Fox And City】【网络流】
题目大意给一个无向图边权为一,添加若干条边使得到1节点的距离与想要的距离差的平方和最小。解题思路拆点,割掉边(i,j)-(i,j+1)表示dis[i]==j+1,容量为贡献,如果原来有边(i,j),那|dis[i]=dis[j]|<=1,连上(i,k)-(j,k-1),(j,k)-(i,k-1),容量为inf即可。跑最小割即出解。code#include<set>#include<cmath>#原创 2017-04-09 08:47:20 · 412 阅读 · 0 评论 -
【jzoj3739】【TJOI2014】【匹配(match)】【网络流】
题目大意解题思路先跑一遍最大费用流,每次删除一种配对,重新跑一遍,最大费用改变即必选。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL long long#define Min(a,b) ((a<b)?a:b)#原创 2017-03-28 12:21:32 · 291 阅读 · 0 评论 -
【jzoj4963】【book】【二分图匹配】
题目大意小Z曾经是集邮部的成员,集邮部经常举办换邮票活动。活动中,如果两个人互相喜欢对方的邮票,那么这两个人就可以彼此交换自己的邮票。但在这个规则下,小Z没有换到自己喜欢的邮票。小Z觉得这是规则不完善导致的,于是小Z决定制定一个新的交换规则:每次可以选择任意多个人排成一个圆圈,如果每个人都喜欢他前边的人当前拥有的那枚邮票,就可以让每个人都拿走自己前边的人的邮票,并把自己的邮票给后边的人。在活动中可以原创 2017-01-21 15:58:54 · 368 阅读 · 0 评论 -
【jzoj4832】【高维宇宙】【网络流】【二分图匹配】
题目大意给出一个长度为n的序列a[i],可以选两个数组成新的数,每个数最多使用一次,求最多组成多少个质数。解题思路首先算出有哪些数可以配对,用匈牙利求出最大匹配。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define LL l原创 2016-12-04 16:02:09 · 325 阅读 · 0 评论 -
【bzoj4554】【Tjoi2016】【Heoi2016】【游戏】【二分图匹配】
题目大意给出一个图,有一些石头不可炸,一些软石头可炸但不可放炸弹,一些空地可放炸弹。用最多炸弹使两个炸弹互相不可炸。题解对于横竖连通的块标号,可放炸弹的点横竖相连,表示可以放炸弹,做二分图最大匹配即可。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LL原创 2016-07-12 19:25:37 · 438 阅读 · 0 评论 -
【bzoj1191】【HNOI2006】【超级英雄】【Hero】【二分图匹配】
题目大意给出一些题目,每题有两个锦囊,用其中一个一定能解决一道题,必须按顺序解决题目,求最多可以解决多少道题目。解题思路显然用匈牙利做二分图匹配,注意按顺序做,一旦有一个失配就停止并输出答案。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LL long原创 2016-08-02 09:14:58 · 388 阅读 · 0 评论 -
【bzoj1001】【BeiJing2006】【狼抓兔子】【网络流】【平面图转对偶图】
题目大意平面图最小割。题解一眼上zkw,结果tle,还傻乎乎地去优化。后来查了查题解,发现有个东西叫平面图的对偶图,构出图后跑最短路就可以了。平面图的对偶图,就是用边把平面割成很多个块,就是新图的点。分割两个块的边,就是两个新点的新边。最后我还是没ac,留坑待填。原创 2016-06-28 08:52:29 · 510 阅读 · 0 评论 -
【bzoj1305】【CQOI2009】【dance】【跳舞】
题目大意有n个男孩和n个女孩,男女间要么互相喜欢要么不喜欢,跳一次舞每个人和没跳过的喜欢的跳或和最多k个不喜欢的跳。求最多跳几次。解题思路有一个直观的贪心,最大的答案为每个人喜欢的人数取最小值后加k,但我们能不能保证有合法解呢,反正bzoj上能过,但某个oj上不能过。于是就打了网络流,先二分一个答案,每个人拆成两个点(和喜欢的人跳与和不喜欢的人跳),源到和喜欢的人跳流量为ans,和喜欢的人跳到和不喜原创 2016-09-06 15:34:32 · 289 阅读 · 0 评论 -
【jzoj5057】【炮塔】【网络流】
题目大意A君正在玩一款战略游戏,游戏中的规则是这样的:给定一个n*m的地图,地图上每一个位置要么是空地,要么是炮塔,要么有若干数量的敌人。现在A君要操控炮塔攻击这些敌人。对于每个炮塔,它们的攻击方向已经确定(上下左右其中一个),A君只需要为每个炮塔指定攻击位置。每一个炮塔只能朝它攻击方向上的某个位置进行攻击,每个炮塔只能攻击一次,当然,炮塔也可以不进行攻击。炮塔对一个位置攻击后,位置上的所有敌人都会原创 2017-04-13 22:39:34 · 532 阅读 · 0 评论