塔塔露也能学会的算法
kkgor_canned
这个作者很懒,什么都没留下…
展开
-
塔塔露也能学会的算法(3) | 网络最大流最小割(Dinic)
例题:P3376 【模板】网络最大流 俗话说得好:万物皆可网络流。 本篇打算直接跳过FF直接讲Dinic,不要问我为什么,问就是我不会。 其实看过这篇????网络最大流-从入门开始,详细讲到实用易懂的Dinic算法 之后就没有什么可讲的了,但是我还是要讲两句。 链式前向星存图,目前为止我遇到的所有图论相关都这么存,好用极了。 bfs过程中可以使用STL的queue,简单方便,用过的人(只有我)都说好。 没了。 简单来讲,首先一个bfs()用来分层——把图按照遍历的顺序存上层数dep[i],方便后面df原创 2020-11-20 14:49:03 · 137 阅读 · 0 评论 -
塔塔露也能学会的算法(2) | 我有背包你有手么
背包问题 我们手里有个体积为V的背包,一共有k样物品,第i样物品的体积和价值分别为wi和vi。 01背包 每个物体有且只有一件,装还是不装? 对于每个物体i,从V开始倒序计算。 至于倒叙的理由,可以参考背包九讲内的内容: 以上方法的时间和空间复杂度均为O(N*V),其中时间复杂度基本已经不能再优化了,但空间复杂度却可以优化到O(V)。 先考虑上面讲的基本思路如何实现,肯定是有一个主循环i=1…N,每次算出来二维数组f[i][0…V]的所有值。那么,如果只用一个数组f [0…V],能不能保证第i原创 2020-11-16 14:23:19 · 109 阅读 · 0 评论 -
塔塔露也能学会的算法(1) | dijkstra从入门到放弃
1. 基础 Dijkstra,单源最短路径算法,要求图中无负环。 过程:选点(Black),找周围点(Grey),松弛,选点(Black),找周围点(Grey),松弛,……,直到没有点。 使用邻接表map[maxn][maxn]存储边关系,bool型数组存储颜色 (比如1=white, 0=black/grey),dist[maxn]存储源点到各个点的距离。 通过判断dist[i]是否为INF可以得出该点是grey点还是white点。 拓展周围点时的距离关系:dist[i]=dist[pr原创 2020-11-15 01:35:26 · 199 阅读 · 0 评论