NKSWC总结

本文概述了图论中的拓扑排序、二分图与欧拉图特性,以及最小生成树(MST)、非严格次小生成树、强联通分量和数据结构中的并查集与线段树。通过实例P7113和P1262展示了这些概念在实际问题中的应用。
摘要由CSDN通过智能技术生成

这次总共学习了两个板块:图论,数据结构。

图论:

拓补排序:将一个DAG里的点放在一个序列里,使得:

  • 每个顶点出现且只出现一次。
  • 若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B 的前面。

有些题可以用拓补排序求出一些性质。

P7113 [NOIP2020] 排水系统

此题要计算每个点流入的水流量,在将这些流量平均分配给自己的儿子。我们要用拓补排序求出计算的顺序,再计算。

二分图:

如果将一个图用黑白两色染色,要求相邻的两个点的颜色不一样,就说明这是一个二分图。

欧拉图&欧拉路(回路)

如果一个图度数为奇数的点为 0 0 0 个或 2 2 2 个,那么这个图就是一个欧拉图。欧拉图存在一条路径,使得这条路径能遍历这张图的每一条边恰好一次,如果这张图有 0 0 0 个奇点,那么这张图就存在一条欧拉回路。

欧拉回路的求法:普通 DFS 遍历图,然后在离开一个点的时候将这个点放入栈内,最后去出这个栈里面的元素就行了。这样可以保证路径连续。

MST:

对于一个带权图,将图的边删减到其点个数减一条边,即一棵树,并且使这棵树边权和最小,这棵树就是这张图的最小生成树。

非严格次小生成树:

我们对于每一条不在生成树上的边,加上它,并且去掉原来生成树上两点路径上最大的边,在求一遍和,取最小值,就是次小生成树的边权和。

强联通分量:

如果对于一张图,它的每两个点都可以互相到达,则称此图强联通。强联通分量指把一张图分为若干个子图,使这些子图强联通,且使子图数量尽量少。

求出一张图的强联通分量后,就可以将这张图的每一个强联通分量缩为一个点,得到一个 DAG。

P1262 间谍网络

此题存在两种贿赂情况:一棵树或一个环。将图的所有强联通分量缩为一个点后,就只有第一种情况了。贿赂每一个强联通分量的代价就是分量里面价钱最少的人的代价。对于每一棵树贿赂树根即可。

数据结构

并查集

通过将点合并到一个集合的方式,使得一些操作可以在 log ⁡ 2 ( n ) \log_2(n) log2(n) 的时间复杂度内完成。应用有:判断联通,启发式合并等。

线段树

可以在很好的时间复杂度内完成亿些区间操作,比如区间求和,区间加,区间乘等等。如果要同时完成区间修改和区间查询要用懒标线段树。有一种线段树,名字忘了,原理是从低往上操作,可以大大缩小常数。

应用:常规区间操作,求逆序对,优化建图等等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值