摘要:
差分约束系统 求解不等式组 有解 必有无穷多解(全部加上一个常数) 无解 转化为图上的最短路或者最长路 不等号方向为 ⇐ 最短路 不等号方向为 >= 最长路 例子 B - A >= c (1) C - B >= a (2) C - A >= b (3) 把A看做源点,A到A的距离是0(或者想象一个虚 阅读全文
摘要:
题目 "CRB and Candies" 题意 $$ \text{给定正整数N,求} LCM \lbrace C \left(N , 0 \right),C\left(N , 1 \right),...,C\left(N , N \right) \rbrace \% mod \qquad 1\leq 阅读全文
摘要:
"codevs" 题意:求最大强连通分量的大小以及所包含的顶点有哪些 Tarjan算法 Kosaraju算法 阅读全文
摘要:
最小生成树 什么是最小生成树 给定一张无向带权图G=(V,E,W),从中 挑选出|V| 1条边 ,使得V中任意两点都有直接或者间接的路径 显然,最后得到的子图是一棵树,如果这棵树是所有树中边权和最小的,那么它就是图G的最小生成树 一幅图中的最小生成树可能不止一个 克鲁斯卡尔算法 算法流程 把边按照从 阅读全文
摘要:
堆优化的迪杰斯特拉 迪杰斯特拉算法 核心代码 优化之处 优化点B :很容易想到,不必扫描1~n,只需遍历由pos顶点可以到达的顶点即可,可以使用vector存储图,或者使用链式前向星 优化点A :事实上,每次找出一个距离源点最短的顶点,需要扫描1~n吗?一个很朴素的想法是如果把这些点存起来然后按照距 阅读全文
摘要:
SPFA算法 解决问题 单源点最短路径 可处理负权边 判断负环 Bellman Ford算法 SPFA算法是Bellman Ford的优化版本 Bellman Ford算法流程 初始化:将除源点外的所有顶点的最短距离估计值 d[v] ←+∞, d[s] ←0; 迭代求解:反复对边集E中的每条边进行松 阅读全文
摘要:
弗洛伊德算法 基本思想 先限制从u到v的路径只能经过1号结点或不经过1号结点 再放宽限制,u到v的路径可以从2号结点或不经过2号结点 以此类推,从u到v的路径可以经过任意中继结点或者不经过任意中继节点 特性 可以处理负边 源码 HDU 1874 c++ include include include 阅读全文
摘要:
Dijkstra算法 解决问题 单源最短路径,图G=(V,E,W) 基本思想 记源点为s,除s外任意顶点i到s的距离记为dis[i] 维护一个集合S,集合S中的所有顶点到源点s的最短距离已经求出,初始S={s} 每次向S集合中添加一个顶点pos,这个顶点pos是S集合外的,并且它是目前看来离源点s最 阅读全文
摘要:
无向图环的判断 并查集判断 如果两个结点父亲相同,并且两个结点之间有边相连,则存在环 DFS判断 dfs的过程中如果遇到已经访问过的点,并且这个点不是自己的直接父亲,那么就必然存在环 阅读全文