
图论
文章平均质量分 80
LittleRewriter
这个作者很懒,什么都没留下…
展开
-
网络流 (一) 最大流的原理图解
嗯…于是学一波网络流罢 之前学过一波,不过失败了orz 希望这次能学成功(x)建模想象一下,你在调度货车运输(不是最小生成树+LCA那道题放心吧),但是有些桥是有载重限制的。比如下图: 绿色的边表示桥,上面的数字表示载重。 老板打算从A到G。 显然,作为一个老板,超载是不合适的,姑且不论货物安全,还有可能受到法律惩罚!那么,最多能一次载多少货物呢?在解决这个问题之前,我们先为这一模型定原创 2017-12-09 15:09:52 · 20180 阅读 · 10 评论 -
网络流(二) 最大流算法的实现
嗯接着前篇…有了前面的原理铺垫,接下来的可能会简单一些…? FF看见烦,SAP不想学。 所以只剩下EK和Dinic了。 模板题:luogu3376Edmond-Karp算法基本上上把EK的queue改成stack就成了FF,所以这里不讨论FF的问题。 先贴代码,然后再说一说其含义。#include <bits/stdc++.h>using namespace std;#define MA原创 2017-12-10 00:00:25 · 3176 阅读 · 1 评论 -
网络流(三) 最小割 平面图转对偶图
嗯,将两个放在一起的原因…只是因为单另分开篇幅不够罢。 绝对不是因为例题只有BZOJ1001什么的最小割最大流定理搜了一圈没有找到什么是最小割,然后懵逼了。 嗯…… 首先,什么是割?其实,割=割边=去掉以后使图不连通的边的集合 然后,容量和最少的割集称为最小割。 对于割,有这样一个重要定理: 最小割=最大流嗯,最小割就这么多东西。 为什么正确?这里给出一种直观的想法 (原PO:h原创 2017-12-10 13:39:09 · 2305 阅读 · 0 评论 -
BZOJ1003/luogu1772/ZJOI2006 物流运输
很有趣的一道图论+DP。首先看数据范围,m小于等于20,直观感受状压DP…不过蒟蒻并没有想出来怎么转移。 有一个自然而然的想法:能不能每次将堵塞的边的代价加上去,然后最后求一次最短路?但是这样很难维护转多少次,所以PASS. 于是我就可耻的看了一下题解区。 首先我们先列这样一个转移方程: dp[i]=min{dp[k]+g[k+1][i]∗(i−k)+K}dp[i] = min\{ d原创 2018-01-11 16:49:52 · 380 阅读 · 0 评论 -
luogu2387/NOI 2014 魔法森林 SPFA动态加点
很毒的一道题 蒟蒻不会LCT,看到有SPFA的做法…于是(看题解)水一发我们发现我们要求两个权值之和的最小值。这是没有办法实现的,所以我们不妨换个思路,也就是在某一权值的条件下看看达到的最小值是多少(有些拗口)。 换句话说,如果我们以a为关键字对边进行从小到大排序的话,依次加入边,之后对b进行最短路处理。如何处理呢?将这条边的两个顶点加入队列中进行松弛。 显然这个时候加入该边之前最优原创 2018-01-13 17:33:38 · 393 阅读 · 0 评论