acm图论基础总结

首先是图的基本概念和图的遍历之类的基本操作。

 

几个模块,首先是最短路。

最短路的复杂度比较低,优化后可以求几十万的数据规模。

数学模型是类似差分约束的不等式最优化模型,每个边只有选和不选2种情况。

一些模型建图比较玄妙,比如为一个点集加入出点入点,或者求边数最少的路里的最短路,可以把每个边权加一个足够大的值,求出最短路除以这个值就是边数,取模就是最短路长度。

 

连通性:

线性的复杂度。简单的题目是只要缩点就行(特点是这些问题只要把环去掉就很容易解)。

更多问题是先缩点以变成无环图,再在图上进行操作(比如dp(动态规划是不能有环的),其他要求无环的图论算法)。

 

网络流:(需要智力的专题...):
主要是最大流和费用流。最大流复杂度至少是n^3的。求不过1000的规模。

但模型建立学问很多..因为数学模型相比最短路适用的更广,每个边是一个限制,但每个边可以只走一部分流量(最短路相当于全走或全不走),相当于在众多限制中找到最matter的限制,求最优化。(有下界的最大流是一样的数学模型,只是具体求解时需要改一下图)

费用流就更妙了..相当于不仅确定了最大流还要求所有最大流中的另一参数的最优化,模型也是更加抽象..

费用流的特点是复杂度为O(最大流*最短路(一般是spfa)),所以最大流不会太大,一些甚至是隐藏在题目里的固定常数,把这个固定常数建模成为最大流,需要求的最优化量为费用。

 

 

二分图:

相当于最大流的一个子问题,但效率较高,优化后甚至可以算几千的规模。

数学模型比较简单,难点是和图论中很多性质相关(点覆盖,独立点,不相交路径...)

 

 

还有很多小专题:并查集,拓扑排序,欧拉路...(不太模板化的)

还有一些比较独立的数学模型的固定算法:生成树(树形图,生成树计数),任意图匹配,全局最小割...(很多是有模板就能做的)

 

中等图论题的重点是看出题意,分析数学约束,建立模型,套模板...裸模板题在比赛中几乎没有了..

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_40191952/article/details/88982925