@Yeasion-Nein
2018-10-03T17:02:16.000000Z
字数 688
阅读 635
Note
听课笔记
存图: 如果数据为 那么可以使用前向星。但是如果碰到了之类的数据范围可以考虑使用邻接矩阵。
最短路:
{
朴素:
STL堆优化:
手写堆优化:
斐波那契堆:
}
: 到。
出现负权边:只能用。
没有负权边:最好用堆优化。
生成树:
最小生成树{
:
: 不一定要掌握
}
次小生成树:{
首先:一个有个点的完全图,生成树个数为(由矩阵树定理 )
先求最小生成树。枚举删掉最小生成树上的哪一条边。然后全图还剩下条边,然后接着跑最小生成树。那么时间复杂度为。大概可以拿分。然后满分做法是先加进来一条边,然后删去一条原来的最小生成树上的最大的那条边。而我们先加边会导致形成一个环包含加进来的这个边的两个端点,那么为了使它再次形成一棵树,我们就要再这个还上删掉一个边,那么我们就可以用倍增进行删边。这样大概可以的全分了。
}
强连通分量:
有向图:
无向图:{
点双连通分量:割点
边双联通分量:桥
}
目的: 把有向有环图变成进行。
DAG上 + DP + Topu
将图进行拓扑排序使边有序,那么我们就可以进行Dp.
网络流:胡伯涛最小割模型
二分图:{
常见的二分图:{
树: 按照奇数点和偶数点成二分图。
网格图:按照黑白点成二分图。
}
匈牙利匹配:上限。
}