2018年8月24日训练日记

Bellman_Ford算法和spfa算法:同样是求单源最短路,一般只用spfa模板,可以判负权环。注意多点到一点的最短距离可以建立反向图再跑spfa。注意最短路条件的修改。

差分约束:本质还是最短路。给出n个人的限制条件,求第一个人和最后一个人最多差多少,化为d[a]-d[b]<=c 然后建立b到a权值为c的边。答案是d[n-1]-d[0]。有的时候为了避免b为负,整体加上一个值。注意有的题目要保持1~n的相对顺序,需要再添加i到i-1的边。

最小生成树:用kruskal算法。

结论:最小生成树一定是最小瓶颈生成树(注意灵活使用这个结论,比如求(u,v)的路径的最小瓶颈边>=p的点对数)。例题。

求次小生成树:先求最小生成树记录树上的边,然后枚举删掉每一条最小生成树上的边的新的生成树(注意不存在生成树时continue),取最小值。

至少添加多少条边使图连通:已知的边权设为0,其他的按题目要求算出代价,然后求最小生成树。

注意:n=1的时候输出0。

二分图匹配:

注意:自环和重边。

最大匹配:有很多结论,之前整理过。注意想清楚题目求得是什么。

结论:这里。

对于二分图: 
以下数值等价. 
最大匹配 
最小点覆盖 
|V|-最大独立集(二分图或有向无环图) 
|V|-最小边覆盖数 
|V|-最小路径覆盖数(有向无环图) 
|V|-最小路径覆盖数/2(无向图) 
(上面括号里有有向无环图的,均是将一个点拆成两个点连边匹配) 

无向图若不能明确分成两部分,考虑将原图翻倍,然后计算翻倍图的最大匹配/2

棋盘类问题目前只做了两个(放车、清理障碍物),就是对于在坐标(i,j)的物品建立i->j的边,然后根据题意求解

翻倍构图例题:不清楚ij是男女,求最大匹配。

最优匹配:有很多结论,之前整理过。这里。例题。二分图最优匹配==有向环覆盖。

注意:nm不相等的情况看清楚改哪里,求最小值边权要取负。

一般图最大匹配:带花树算法。这里。

结论:树是天然的二分图,奇数层顶点和偶数层顶点为二分图左右点集。当然我们也可以直接构建翻倍的二分图(同上),求出最大匹配数ans。最终结果等于ans/2。

网络流:我训练日记里写过不少了。。。

日记1。日记2。日记3。日记4。日记5。日记6。日记7。日记8。

题目还没看完,明天继续看。晚上打个cf div3 放松一下。

 

你可能感兴趣的:(训练日记)