2026春季下学期第五周
周三
二分:
upper_bound和lower_bound的区别就是前者返回的是大于目标值的迭代器,后者返回的是大于等于的迭代器。由于返回的元素都属迭代器的原因,所以直接用int类型的变量来记录他们呢是不可以的,需要在后面加上-vector.begin()。如果直接用auto类型来转换的话会直接变成迭代器指向的元素的值。
周四
Floyd算法:
在带权图里面找到每两个顶点之间最短的路径,我们通过枚举每个节点作为可能存在的最短路径的中间节点,试探一下这条新的路径是不是比原来的直接到达的路径更短,如果是则更新直接到达的路径为这条试探的路径的距离。这个算法的时间复杂度是O(n^3)。Floyd算法会导致我们无法得知之前的图的最初的结构
周五
拓扑排序:
在有向无环图里面的排序。核心规则是如果有个边从u指向v那么在拓扑排序里面一定是u出现在v的前面。
Kahn算法:
找到入度为0的点,说明这个点是最先出现的,输出他之后,这个点的子节点的入度就会减一。一直重复上面的步骤就能把拓扑排序排出来
浙公网安备 33010602011771号