图论小专题B】的更多相关文章

大意失荆州.今天考试一到可以用Dijkstra水过的题目我竟然没有做出来,这说明基础还是相当重要.考虑到我连Tarjan算法都不太记得了,我决定再过一遍蓝皮书,对图论做一个小的总结.图论这个部分可能会分几次发布出来. 0 图的储存 一般而言,在代码中我们会用\(M\)表示边的个数,\(N\)表示点的个数. 邻接矩阵:用一个矩阵\(A_{ij}\)表示点\(i,j\)的距离或连通性. 邻接表:用vector类型edge储存.其中edge[i][j]表示以\(i\)为起点的第\(j\)条边. 链式前…
2 树 2.1 树的定义 一个只有\(N-1\)条边,且任意两个点连通的图叫做树.通过这样定义的树往往是一棵无根树,而我们通常会任意选定一个根节点使其变成有根树.有根树可以定义"父亲和儿子"的层次关系,这往往有利于构造最优子结构,进行DP和搜索等操作. 特别的,如果在树上任意加上一条边,那么整个树上就会多出一个环.我们称这样的树是"基环树".基环树不是树,但是它只有一个环.将整个环作为一个"广义根",然后将根和连在环上的子树分开处理,同样可以套用…
3 负环及其应用 3.1 判定算法 判断负环只能用"边松弛"算法,也就是Bellman-Ford和SPFA算法.这两个算法都是\(O(NM)\)级别的.因为负环中一定存在一条负边,使得\(dis_i > dis_j+d(i,j)\)恒成立.因此,在用边松弛算法时,如果一条边被松弛超过一定次数,我们就可以判定图中存在负环.负环则代表环上的边权和小于0.在负环上走若干圈,则\(dis_i\)可以趋近\(-\infty\). Bellman-Ford算法 如果经过\(n\)轮迭代后,仍…
系列索引: NOIp 图论算法专题总结 (1) NOIp 图论算法专题总结 (2) NOIp 图论算法专题总结 (3) 最短路 Floyd 基本思路:枚举所有点与点的中点,如果从中点走最短,更新两点间距离值.时间复杂度 \(O(V^3 )\). int n, m, f[N][N]; memset(f, 0x3f, sizeof(f)); for (int i=1, a, b, w; i<=m; i++) { scanf("%d%d%d", &a, &b, &…
[题解][总结]P1330 封锁阳光大学 &&图论小总结 这道题其实有一点点难度,不过我能经过思考做出来说明还是没有普及组\(D1T1\)难度的. 考虑一条边的两边要有且仅有一个点被选中...这不就是染色吗?想到此,聪明的你一定就知道怎么做了. 这题唯一的坑点就是不一定图是联通的,所以要\(for\)一下所有点去\(bfs\). 这种题我还\(wa\)了一次,而且如果不是我下了数据还调不出来... 思考一下为什么没有一遍过此题,还是因为思维不够完善.图论的题目,有什么坑点呢?在这里总结一下…
系列索引: NOIp 图论算法专题总结 (1) NOIp 图论算法专题总结 (2) NOIp 图论算法专题总结 (3) 树链剖分 https://oi-wiki.org/graph/heavy-light-decomposition/ qRange:将树从 \(x\) 到 \(y\) 结点最短路径上所有节点的值都加上 \(val\) updRange:求树从 \(x\) 到 \(y\) 结点最短路径上所有节点的值之和 qSon:将以 \(x\) 为根节点的子树内所有节点值都加上 \(val\)…
系列索引: NOIp 图论算法专题总结 (1) NOIp 图论算法专题总结 (2) NOIp 图论算法专题总结 (3) 网络流 概念 1 容量网络(capacity network)是一个有向图,图的边 \((u, v)\) 有非负的权 \(c(u, v)\),被称为容量(capacity). 图中有一个被称为源(source)的节点和一个被称为汇(sink)的节点.图中每条边称为弧(arc). 实际通过每条边的流量记为 \(f(u, v)\). 残量网络(residual network)是一…
题意 分析 这题几乎就是一条dijkstra的问题.但是,如何考虑倒在中间? 要意识到这题求什么:单源最短路的最大值.那么有没有更大的?倒在中间有可能会使它更大. 但是要注意一个问题:不要把不存在的边(边长为inf)算进去:另外,n=1的情况需要注意. 代码 // Origin: // Theme: Graph Theory (Basic) // Date: 080618 // Author: Sam X //#include <bits/stdc++.h> #include <iost…
题意 分析 问题是要看出来这是个floyd闭包问题.我没看出来- - 分析之后补充. 代码 // Origin: // Theme: Graph Theory (Basic) // Date: 080618 // Author: Sam X //#include <bits/stdc++.h> #include <iostream> #include <utility> #include <iomanip> #include <cstring>…
题意 分析 变形的dijkstra. 分析题意之后补充. 代码 // Origin: // Theme: Graph Theory (Basic) // Date: 080518 // Author: Sam X //#include <bits/stdc++.h> #include <iostream> #include <utility> #include <iomanip> #include <cstring> #include <c…