随笔分类 -  网络流

摘要:费用流比较显然,但复杂度并不是我们想要的那样。这时候考虑模拟费用流是个不错的选择。 我们把缺军队的地方看作老鼠,军队为洞,那么我们可以花费一定代价移动老鼠和洞,使得所有老鼠均进洞,我们需要最小化总代价。 为了方便,我们将每个老鼠的值设为$-inf$。表示将该老鼠和某一个洞匹配后额外的代价。由于我们会 阅读全文
posted @ 2020-06-26 20:38 神之右大臣 阅读(729) 评论(0) 推荐(0)
摘要:题面 首先你会发现一个性质:一个图符合条件当且仅当E<=2*V-2; 因为假设图中有2*V-2条边,为了符合条件,一定是有一颗白色生成树和一颗黑色生成树。可以看出,没有其他的情况; 那么如果再多一条边呢?显然,填在任意位置都会使任意一颗树变成基环树,导致一种颜色成环,不成立; 所以E的最大值就是2* 阅读全文
posted @ 2019-10-16 09:58 神之右大臣 阅读(345) 评论(0) 推荐(0)
摘要:在DAG中,用尽量少的简单路径,覆盖DAG的所有顶点,这叫做DAG的最小路径点覆盖; 最小不相交路径覆盖:每一条路径经过的顶点各不相同。 最小可相交路径覆盖:每一条路径经过的顶点可以相同。 先看最小不相交路径覆盖,我们将它进行拆点二分图,对于图中存在的边(i,j)连接(i,j'); 特别的,每个点自 阅读全文
posted @ 2019-10-11 20:33 神之右大臣 阅读(318) 评论(0) 推荐(0)
摘要:题面 首先忽略掉题中k的限制(油量的限制); 那么很清楚的发现:对于一个点(i,j);向(i+1,j),(i,j+1)建立一条容1费0的边;向(i-1,j),(i,j-1)建立一条容1费B的边; 很清楚的:从(1,1)到(n,n)跑费用流就好了; 那么加上k的限制呢? 由于k很小,所以我们可以建立分 阅读全文
posted @ 2019-10-10 12:00 神之右大臣 阅读(194) 评论(0) 推荐(0)
摘要:首先来说定义: 在一个有向图中,每个点都有一个点权: 闭合子图:对于这个子图,它任意一个点的的后继必须在这个子图中; 最大权闭合子图:在所有的闭合子图中,该图的点权和最大; 求最大权闭合子图是标准的网络流建模模型; 首先我们建立超级源S和超级汇T;把所有点权为正的点与S连接一条有向边,方向是从S到u 阅读全文
posted @ 2019-10-05 20:30 神之右大臣 阅读(295) 评论(0) 推荐(0)
摘要:在dinic中,我们会发现,dfs中每条边都会遍历至少一遍,那么我们可以把一定不会用到的边删去吗? 答案是当然可以,这就用到了当前弧优化; 其实这个优化在很久很久以前学习欧拉回路的时候就接触到了; 每次增广一条路后可以看做“榨干”了这条路,既然榨干了就没有再增广的可能了。但如果每次都扫描这些“枯萎的 阅读全文
posted @ 2019-09-29 14:19 神之右大臣 阅读(949) 评论(0) 推荐(1)
摘要:题面 奇数+奇数一定不是质数(1+1除外),偶数+偶数一定不是质数,质数只可能出现在偶数+奇数中 把所有的点排成两列,权值为奇数的点在左边,权值为偶数的在右边 如果左边的点x+右边的点y是质数,我们就连一条x->y的边 最后答案显然是最大独立集=n-最小点覆盖=n-最大匹配数 由于1比较特殊,考虑到 阅读全文
posted @ 2019-08-15 14:27 神之右大臣 阅读(211) 评论(0) 推荐(0)
摘要:题面 这道题虽然是练习匈牙利算法的,但可以用网络流来切掉它; 我们可以建立一个超级源和一个超级汇,超级源连接左部分点,超级汇连接右部分点; 然后在该图上跑最大流就可以了; PS:我设的超级源是2001,超级汇是2002; 阅读全文
posted @ 2019-08-10 14:48 神之右大臣 阅读(156) 评论(0) 推荐(0)
摘要:what is 网络流 相信大家都听过网络流这个名字。哦?你知道网络,还知道输入输出流?呀,看来你已经会网络流了啊! 嗯,开个玩笑 网络流(network-flows)是一种图论算法,说起来可能比较抽象,不过我们可以把网络图想象成一个水管分布图,网络流就相当于水流。边就是水管,节点就是一个转换水流的 阅读全文
posted @ 2019-07-17 14:06 神之右大臣 阅读(5437) 评论(1) 推荐(1)