随笔分类 -  板子

摘要:适用 含负权边的有向图的单源最短路径问题 不能处理带负权边的无向图和包含权值总和为负值的回路 数据结构 dist[u] :源点到u的最短路径长度 思路 每次更新dist数组,使得 dist[u] 的含义是从源点到u的经过n条边的最短路径长度 递推公式 $Dist^k[u]=min(dist^{k-1 阅读全文
posted @ 2018-12-30 19:14 TobicYAL 阅读(386) 评论(0) 推荐(0)
摘要:数据结构 dfn[i] :编号为i的结点在dfs遍历图的过程中的访问序号(开始时间) low[i] :从i结点出发dfs过程中i下方的结点能到达的最早的当前搜索路径上的结点的开始时间。(初始时 low[i]=dfn[i] ) 操作 遍历结点没被访问过的就开始dfs,碰到哪个结点哪个结点就入栈,栈中结 阅读全文
posted @ 2018-12-30 18:01 TobicYAL 阅读(649) 评论(0) 推荐(0)
摘要:Trie树(字典树) 树中任一结点p都对应于一个字符串S,S由从根出发走到p所经过的边上的字符构成 数据结构 操作 插入串 (复杂度为模式串长度) Trie图(AC自动机) 可以由Trie树为基础构造 终止节点:每个模式串最后一个结点 危险结点:终止节点和前缀指向危险结点的结点。 包含前缀指针(ne 阅读全文
posted @ 2018-12-30 16:29 TobicYAL 阅读(639) 评论(0) 推荐(0)
摘要:适用于单个元素经常修改,反复求不同区间和的情况。 函数 求和:$sum(k)=C[n_1]+C[n_2]+…+C[n_m]$ $n_m=k, n_{i-1}=n_i-lowbit(n_i)$ $a[i]+….+a[j]=sum(j)-sum(i)$ 更新: $a[i]$更新,有且只有$C[n_1], 阅读全文
posted @ 2018-12-13 00:02 TobicYAL 阅读(198) 评论(0) 推荐(0)
摘要:主要函数 Merge :合并两个并查集 GetRoot :查询某个元素在哪个集合 Query :查询两个元素是否属于同一集合 数据结构 parent[i]=j :j是i的父节点 Code 阅读全文
posted @ 2018-12-12 23:24 TobicYAL 阅读(157) 评论(0) 推荐(0)