题意:有n头牛,f种食物,d种饮料,每头牛有自己喜欢的食物和饮料,问你最多能够几头牛搭配好,每种食物或者饮料只能一头牛享用; 解题思路:把牛拆点,因为流过牛的流量是由限制的,只能为1,然后,食物和牛的入点相连,牛的出点和饮料相连,求解最大流 代码: ...
分类:
其他好文 时间:
2018-11-15 21:16:24
阅读次数:
164
网络流的问题一般都会加S,T! 网络流init参数一般为节点数(包括S,T) maxn为点数+一点(注意可能加点,拆点...) 把插头看做结点,增加S,T链接设备和插头(容量为1),转换器作为边(容量无穷大),套模板。用的是紫书第二种方法,因为更喜欢思维直接一点的方式。 读取输入时用一个ID函数方便 ...
分类:
其他好文 时间:
2018-10-27 14:57:08
阅读次数:
212
拆点法是很套路的方法,将一个点拆为i和i',连边,cap为1,cost为0. 编号:点2~n-1拆成弧i->i',前者编号为0~n-1,后者编号为n~2n-3 (i+n-2) 本题拆点后从1-v求流量为2的最小费用流 while(flow < flow_limit && BellmanFord(s, ...
分类:
其他好文 时间:
2018-10-27 14:49:43
阅读次数:
266
点连通度:最少删除几个点使图不连通 拆点就变成了最小割 注意编号。画图就知道u’连v,v’连u。 技巧:不需要枚举S,T。固定S,枚举T即可 这种输入很烦, scanf(" (%d,%d)", &u, &v); Scanf中添加 空白字符: 空白字符会使scanf()函数在读操作中略去输入中的一个或 ...
分类:
Web程序 时间:
2018-10-27 14:43:50
阅读次数:
189
题意: 只不过是hdu3081多加了k种选择 想一下,最多能玩x轮,是不是就是每个女生能最多选x个男生 现在题中的每个女生比3081多了k中选择 那就把女生拆点 i i‘ i --> i' 连一条权值为K的边 如果男女无争吵 连上i --> 男 权值为1 有争吵 连上i' --> 男 权值为1 ...
分类:
其他好文 时间:
2018-10-23 16:28:07
阅读次数:
195
"传送门" 解题思路 以前bpw讲过的一道题,顺便复习一下矩阵乘法。做法就是拆点,把每个点拆成$9$个点,然后挨个连边。之后若$i$与$j$之间的边长度为$x$,就让$i$的第$x$个点和$j$的第$1$个点连边。然后就是一个矩阵快速幂,时间复杂度$O((n 9)^3log(n 9))$。 代码 c ...
分类:
其他好文 时间:
2018-10-19 23:45:47
阅读次数:
203
解题思路 应该比较显然得能看出这是个网络流,将$S$与房间连边,房间与人连边,人与菜连边,菜与汇点连边,边的流量均为1。但这样是错误的,因为有可能一个人跑过去2的流量,所以要将人拆点限流。 #include<iostream> #include<cstdio> #include<cstring> # ...
分类:
其他好文 时间:
2018-10-14 00:19:56
阅读次数:
154
二分图及其相关定义 [TOC] 二分图相关定义: 二分图的判定: 只需判定图是否有奇环即可,若无奇环则为二分图。判定方法有染色法,并查集(拆点)等。 边覆盖集: 选出某些边集合,满足G中所有点都是边集合中某条边的端点。注意极小的最小的区别。极小边覆盖集的任何真子集都不是边覆盖 ...
分类:
其他好文 时间:
2018-10-08 20:40:47
阅读次数:
148
Control 题意:有一个犯罪集团要贩卖大规模杀伤武器,从s城运输到t城,现在你是一个特殊部门的长官,可以在城市中布置眼线,但是布施眼线需要花钱,现在问至少要花费多少能使得你及时阻止他们的运输。 题解:裸的最小割模型,最小割就是最大流,我们把点拆成2个点,然后将原点与拆点建边,流量为在城市建立眼线 ...
分类:
其他好文 时间:
2018-10-01 19:58:34
阅读次数:
159
传送门 这道题是网络流拆点的基本题,我们来说说网络流拆点。 首先,为什么要拆点?这道题中描述的是,一本书和一本练习册,一本答案正好组成了一套书册。也就是说其实每本书只能被用一次。如果我们用老套的网络流建图来做这道题的话,会发现一个神奇的事情,就是对于一个书点,可能有不只一条流流过了这个点,也就说明这 ...
分类:
其他好文 时间:
2018-09-29 01:19:37
阅读次数:
137