摘要: 视频链接:https://www.bilibili.com/video/BV18F411c7M1 // Luogu P3376 【模板】网络最大流 #include <iostream> #include <cstring> #include <algorithm> #include <queue> 阅读全文
posted @ 2022-05-28 13:36 董晓 阅读(1492) 评论(5) 推荐(7)
摘要: D20 网络流 最大流 EK 算法_哔哩哔哩_bilibili P3376 【模板】网络最大流 - 洛谷 #include <iostream> #include <cstring> #include <algorithm> #include <queue> #define LL long long 阅读全文
posted @ 2022-05-28 13:34 董晓 阅读(1237) 评论(2) 推荐(0)
摘要: D19 vDCC 缩点 Tarjan 算法_哔哩哔哩_bilibili vDCC:不删除边,分裂割点,构成的连通块 把 vDCC 缩成点,把缩点和割点对应连边,构成树 1. cut[x] 记录割点,dcc[] 记录 vDCC,id[] 割点的编号 2. 每次回溯:判割点,记录 vDCC 3. 特判孤 阅读全文
posted @ 2022-05-28 13:33 董晓 阅读(1305) 评论(2) 推荐(2)
摘要: D18 eDCC 缩点 Tarjan 算法_哔哩哔哩_bilibili eDCC:删除割边后的连通块。cnt 条割边,cnt+1 个eDCC 1. 缩点:x → dcc[x],n → cnt 2. 割边即树边:bri[i]=bri[i^1]=1 3. 割边出点的度:du[dcc[to[i]]]++ 阅读全文
posted @ 2022-05-28 13:32 董晓 阅读(1479) 评论(1) 推荐(2)
摘要: D17 割边 Tarjan 算法_哔哩哔哩_bilibili P1656 炸铁路 - 洛谷 1. 割点判定:low[y]>=dfn[x]。允许走反边更新 low 值 割边判定:low[y]>dfn[x]。不允许走反边更新 low 值 2. 若 y 已访问且不是反边,更新 low 值 3. 判反边:链 阅读全文
posted @ 2022-05-28 13:31 董晓 阅读(1588) 评论(0) 推荐(4)
摘要: D16 割点 Tarjan 算法_哔哩哔哩_bilibili P3388 【模板】割点(割顶) - 洛谷 有向图:强连通分量、缩点 无向图:割点、割边、点双连通分量、边双连通分量、缩点 1. 割点:删掉后使图从连通变成不连通的点 2. 判儿子:low[y]>=dfn[x](说明 y 没有连通 x 之 阅读全文
posted @ 2022-05-28 13:30 董晓 阅读(1643) 评论(0) 推荐(4)
摘要: D15 SCC 缩点 Tarjan 算法_哔哩哔哩_bilibili P2812 校园网络【[USACO]Network of Schools加强版】 - 洛谷 图问题:有向无向?有环无环?连通不连通?正权负权? 1. 把SCC缩成一个点,旧点 x → 缩点 scc[x],n → cnt 2. 统计 阅读全文
posted @ 2022-05-28 13:29 董晓 阅读(1855) 评论(0) 推荐(2)
摘要: D14【模板】强连通分量 Tarjan 算法_哔哩哔哩_bilibili 1. SCC、DFS树、树边、反祖边、横叉边 2. 时间戳 dfn[]、追溯值 low[]、栈 stk[]、分量 scc[]、大小 siz[] 3. 更新 low 值:若y未访问,回溯更新;若y已访问且未构成scc,则更新 4 阅读全文
posted @ 2022-05-28 13:28 董晓 阅读(2652) 评论(1) 推荐(8)
摘要: T72503 点的距离 - 洛谷 // 倍增算法 #include<bits/stdc++.h> using namespace std; const int N=100010,h=18; int n,m,a,b; vector<int> e[N]; int dep[N],fa[N][19],dis 阅读全文
posted @ 2022-05-28 13:27 董晓 阅读(876) 评论(0) 推荐(2)
摘要: D12 轻重链剖分/树链剖分_哔哩哔哩_bilibili P3384 【模板】重链剖分/树链剖分 - 洛谷 重链剖分:按子树大小把树拆分成互不相交的若干条链。 每个节点只有 1 个(或 0 个)重儿子,其余都是轻儿子。 每条链的链头是轻儿子,其余为重儿子。 1. dfs1(u,f) 预处理 fa[] 阅读全文
posted @ 2022-05-28 13:26 董晓 阅读(2189) 评论(2) 推荐(7)
摘要: D11 最近公共祖先(LCA)树链剖分_哔哩哔哩_bilibili P3379 【模板】最近公共祖先(LCA) - 洛谷 1. dfs1(u,fa) 处理 fa[],son[],dep[],siz[] 2. dfs2(u,top) 处理 top[]。搜重儿子;搜轻儿子 3. lca(u,v) 链头不 阅读全文
posted @ 2022-05-28 13:25 董晓 阅读(1757) 评论(0) 推荐(5)
摘要: D10 最近公共祖先(LCA)Tarjan 算法_哔哩哔哩_bilibili P3379 【模板】最近公共祖先(LCA) - 洛谷 // Tarjan算法 O(n+m) #include<bits/stdc++.h> using namespace std; const int N=500005,M 阅读全文
posted @ 2022-05-28 13:24 董晓 阅读(1797) 评论(0) 推荐(4)
摘要: D09 最近公共祖先(LCA)倍增算法——信息学奥赛算法_哔哩哔哩_bilibili P3379 【模板】最近公共祖先(LCA) - 洛谷 1. f[u][0,1,2...] 维护 u 的各级祖先 2. dep[u] 维护 u 的深度 3. dfs(u,fa) 预处理 f[][],dep[] 4. 阅读全文
posted @ 2022-05-28 13:23 董晓 阅读(4727) 评论(1) 推荐(15)
摘要: 视频链接:B14 BFS 八数码难题_哔哩哔哩_bilibili Luogu P1379 八数码难题 #include <iostream> #include <algorithm> #include <queue> #include <unordered_map> using namespace 阅读全文
posted @ 2022-05-28 13:22 董晓 阅读(1159) 评论(0) 推荐(2)
摘要: 视频链接:B13 多源BFS 矩阵距离_哔哩哔哩_bilibili #include <iostream> #include <cstring> #include <algorithm> #include <queue> using namespace std; const int N=1010; 阅读全文
posted @ 2022-05-28 13:21 董晓 阅读(919) 评论(1) 推荐(0)
摘要: 视频链接:B12 BFS 迷宫 最短路_哔哩哔哩_bilibili POJ3984 迷宫问题 #include <iostream> #include <cstring> #include <algorithm> #include <queue> using namespace std; const 阅读全文
posted @ 2022-05-28 13:20 董晓 阅读(1277) 评论(0) 推荐(1)
摘要: D08 最小生成树 Kruskal 算法_哔哩哔哩_bilibili P3366 【模板】最小生成树 - 洛谷 1. 边集 {u,v,w} 排序 2. 并查集维护最优选边 // Kruskal算法 O(mlogm) #include<bits/stdc++.h> using namespace st 阅读全文
posted @ 2022-05-28 13:19 董晓 阅读(1804) 评论(0) 推荐(2)
摘要: D07 最小生成树 Prim 算法——信息学奥赛算法_哔哩哔哩_bilibili P3366 【模板】最小生成树 - 洛谷 1. d[] 维护点到已选集合的最短距离 2. vis[] 维护点第1次出队 3. 优先队列 <d[],v> 维护最优点 4. 松弛:d[v]>w 5. 最优点第1次出队才有必 阅读全文
posted @ 2022-05-28 13:18 董晓 阅读(1919) 评论(0) 推荐(2)
摘要: D06 最小环 Floyd 算法 P6175 无向图的最小环问题_哔哩哔哩_bilibili P6175 无向图的最小环问题 - 洛谷 1. 无向图最小环 2. k次插点前更新 ans=min(d[i][j]+w[j][k]+w[k][i]) // Floyd 最小环 O(n^3) #include 阅读全文
posted @ 2022-05-28 13:17 董晓 阅读(1095) 评论(0) 推荐(1)
摘要: D05 最短路 Johnson 算法 P5905【模板】全源最短路_哔哩哔哩_bilibili P5905 【模板】全源最短路(Johnson) - 洛谷 #include<algorithm> #include<cstring> #include<iostream> #include<queue> 阅读全文
posted @ 2022-05-28 13:16 董晓 阅读(1555) 评论(1) 推荐(6)
摘要: D04 最短路 Floyd 算法_哔哩哔哩_bilibili B3647 【模板】Floyd - 洛谷 1. d[][] 维护两点之间的最短路 2. k次插点前:已经利用前 k-1 个点为桥,更新了任意两点之间的最短路 3. 处理重边 // Floyd 算法 O(n^3) #include<bits 阅读全文
posted @ 2022-05-28 13:15 董晓 阅读(2006) 评论(2) 推荐(4)
摘要: D03 最短路 Bellman-Ford 算法 SPFA 算法——信息学奥赛算法_哔哩哔哩_bilibili P3371 【模板】单源最短路径(弱化版) - 洛谷 1. d[] 维护点到根的最短路 2. vis[] 维护点是否在队中 3. 队列 <int> 维护队中点 4. 松弛:d[v]>d[u] 阅读全文
posted @ 2022-05-28 13:09 董晓 阅读(2672) 评论(0) 推荐(7)
摘要: D02 最短路 Dijkstra 算法——信息学竞赛算法_哔哩哔哩_bilibili P4779 【模板】单源最短路径(标准版) - 洛谷 1. d[] 维护点到根的最短路 2. vis[] 维护点第1次出队 3. 优先队列 <d[],v> 维护最优点 4. 松弛:d[v]>d[u]+w 5. 最优 阅读全文
posted @ 2022-05-28 13:08 董晓 阅读(4003) 评论(0) 推荐(5)
摘要: D01 拓扑排序_哔哩哔哩_bilibili B3644 【模板】拓扑排序 / 家谱树 - 洛谷 DAG:有向无环图 1. 入度 in[]==0 的点入队 2. 记录拓扑序 3. 子点入度in[]--,为 0 则入队 // 拓扑排序 Kahn算法 O(V+E) #include<bits/stdc+ 阅读全文
posted @ 2022-05-28 13:07 董晓 阅读(2322) 评论(0) 推荐(4)
摘要: B11 广搜 宽搜 (BFS) 算法_哔哩哔哩_bilibili #include <iostream> #include <cstring> #include <algorithm> #include <queue> using namespace std; const int N=100010; 阅读全文
posted @ 2022-05-28 13:05 董晓 阅读(954) 评论(0) 推荐(0)
摘要: 视频链接:B10 DFS 水坑计数_哔哩哔哩_bilibili Luogu P1596 [USACO10OCT]Lake Counting S #include<iostream> #include<cstring> #include<algorithm> using namespace std; 阅读全文
posted @ 2022-05-28 13:04 董晓 阅读(765) 评论(0) 推荐(0)
摘要: E34 树形DP 树的中心_哔哩哔哩_bilibili E34 树形DP 树的中心 - 董晓 - 博客园 阅读全文
posted @ 2022-05-28 13:03 董晓 阅读(660) 评论(0) 推荐(0)
摘要: E33 树形DP 树的直径_哔哩哔哩_bilibili E33 树形DP 树的直径 - 董晓 - 博客园 阅读全文
posted @ 2022-05-28 13:02 董晓 阅读(763) 评论(0) 推荐(1)
摘要: E32 树形DP 树的重心_哔哩哔哩_bilibili E32 树形DP 树的重心 - 董晓 - 博客园 阅读全文
posted @ 2022-05-28 13:01 董晓 阅读(1115) 评论(0) 推荐(0)
摘要: 视频链接:B06 DFS 八皇后问题(N皇后问题)_哔哩哔哩_bilibili Luogu P1219 [USACO1.5]八皇后 #include <iostream> #include <cstring> #include <algorithm> using namespace std; con 阅读全文
posted @ 2022-05-28 13:00 董晓 阅读(1039) 评论(0) 推荐(2)
摘要: 视频链接:B05 DFS 跳马 方案数_哔哩哔哩_bilibili P1644 跳马问题 #include <iostream> #include <cstring> #include <algorithm> using namespace std; int m,n,ans; int dx[4]={ 阅读全文
posted @ 2022-05-28 12:59 董晓 阅读(683) 评论(1) 推荐(1)
摘要: 视频链接:B04 DFS 迷宫 方案数_哔哩哔哩_bilibili Luogu P1605 迷宫 #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 10; in 阅读全文
posted @ 2022-05-28 12:58 董晓 阅读(1056) 评论(0) 推荐(2)
摘要: 视频链接:B03 深搜 (DFS) 算法_哔哩哔哩_bilibili #include <iostream> #include <cstring> #include <algorithm> #include <vector> using namespace std; const int N = 50 阅读全文
posted @ 2022-05-28 12:57 董晓 阅读(1268) 评论(0) 推荐(1)
摘要: 视频链接:B02 图的存储——信息学奥赛算法_哔哩哔哩_bilibili ///////边集数组 示例 #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N=1010, 阅读全文
posted @ 2022-05-28 12:56 董晓 阅读(1626) 评论(0) 推荐(3)
摘要: 视频链接:C02【模板】线段树+懒标记 P3372 线段树——信息学竞赛算法_哔哩哔哩_bilibili 1. 序列→线段树 2. 节点信息:sum[u],add[u] 3. 上传;下传;建树;区修;区查 4. 裂开 lc rc mid;延迟修改 P3372 【模板】线段树 1 - 洛谷 // 数组 阅读全文
posted @ 2022-05-28 09:13 董晓 阅读(6630) 评论(1) 推荐(17)
摘要: 视频链接:C01【模板】并查集——信息学奥赛算法_哔哩哔哩_bilibili 1. 扁平树,维护 fa[] 2. 压缩找根 find(x) 3. 合并集合 fa[x]=y P3367 【模板】并查集 - 洛谷 //并查集 路径压缩 #include<bits/stdc++.h> using name 阅读全文
posted @ 2022-05-28 09:11 董晓 阅读(2400) 评论(0) 推荐(0)
摘要: 视频链接:B01 STL 容器_哔哩哔哩_bilibili ///////vector 示例 #include <iostream> #include <cstring> #include <algorithm> #include <vector> using namespace std; vect 阅读全文
posted @ 2022-05-28 09:10 董晓 阅读(1298) 评论(2) 推荐(3)