作为一名OIER,我们会时不时的需要生成几组比较大的数据来进行测试,但是这种东西手玩肯定是不可能实现的,所以就需要用到数据生成器了。
费用流
费用流,就是在网络流的基础上加入了每条边单位流量的费用,求最大流量和在最大流量的情况下费用的最小值的问题。
对于这种问题,基本思路当然还是在最大流问题的基础上修改啊
所以在这里我给出2种解法:(例题: P3381 【模板】最小费用最大流)
最短路
如标题所示,这一类的算法就是为了解决这一类的单源最短路径问题。
所谓的单源最短路径问题呢,就是指在一个有向图中,给定点S,要求从S点出发遍历全图的最短路径。
以下我来讲几种算法(如果有可能的话)
网络最大流
在图中,有这样一类问题:在一张有向图中,指定源点S和汇点T,每条边的最大容量已知,求从S到T的最大流量。
这就是网络最大流问题,我们可以说的具体一点:一个自来水管道网,你家是汇点,自来水厂是源点,每根管道的粗细是一定的,求能流到你家的水最多有多少。
这个问题的关键在于,当有找到一条路径的时候,这条路径所经过的边的容量就会被占用一部分。
可持久化线段树(主席树)
读以下文字时最好有些线段树的预备知识,毕竟根据发明者的原话:“想法是对原序列的每一个前缀[1..i]建立出一颗线段树维护值域上每个数的出现次数,然后发现这样的树是可以减的,然后就没有然后了”
主席树可以用来解决如下问题:“给出一列数,a1,a2…an,每次询问其中连续的一段区间ai到aj其中的第K大的数是多少?”
Luogu P2900 土地征用 斜率优化dp 题解
一道裸的斜率优化dp
首先对于i,j,若存在a[i].len(以下简写为l[i])>=a[j].len&&a[i].wid(以下简写为w[i])>=a[j].wid,则j这块土地是无用的,在预处理时应去掉这些无用的土地。同时在预处理时可以将数据按l降序排列,同时产生的结果是w必然按升序排列(有兴趣的dalao可以自己证明),这样可方便后面的过程。