随笔分类 -  从0.5开始的算法学习记录

摘要:网络流 最小割、费用流 割 网络流中的割被定义为一种点集的划分方式,源点 \(s\in S\) ,汇点 \(t\in T\) 割 \((S,T)\) 的容量为 \(c(S,T)\) 表示所有从 \(S\) 到 \(T\) 的边的容量之和 最小割问题就是求一个割 \((S,T)\) 使得这样划分的 \ 阅读全文
posted @ 2025-09-20 21:26 才瓯 阅读(5) 评论(0) 推荐(0)
摘要:网络流 最大流算法 网络 图论中的网络是一种特殊的有向图,与有向图不同的是网络存在容量、源点和汇点 \(E\) 边集中的每一条边 \((u,v)\) 都有一个被称为容量的权值 \(c\) \(V\) 点集中存在两个特殊点:源点 \(s\) 和汇点 \(t\) 在网络 \(G=(V,E)\) 中,流是 阅读全文
posted @ 2025-09-02 20:52 才瓯 阅读(5) 评论(0) 推荐(0)
摘要:FWT 快速沃尔什变换 对于整数数组进行位运算卷积的快速计算方式,和 FFT 类似的时间复杂度 \(O(n\log n)\) 引入 位运算卷积:\(C_i=\sum\limits_{i=j\otimes k} A_jB_k\) ,其中 $\otimes $ 表示某种位运算操作 正变换:通过 \(A, 阅读全文
posted @ 2025-08-11 22:05 才瓯 阅读(23) 评论(0) 推荐(0)
摘要:FFT 快速傅里叶变换 高效实现 DFT 离散傅里叶变换的一种手段,可以将两个 \(n\) 次多项式相乘的时间复杂度优化到 \(O(n\log n)\) 的算法 引理:给定 \(n\) 个点可以确定 \(n-1\) 次函数曲线的系数和系数存在映射关系 设两个多项式分别为 \(F(x),G(x)\) 阅读全文
posted @ 2025-08-08 20:34 才瓯 阅读(13) 评论(0) 推荐(0)
摘要:莫队算法 用于解决一类区间询问问题的办法 对于一段给定的数据序列,有 \(m\) 次询问,询问的区间 \([l,r]\) 如果能够在 \(O(1)\) 的时间复杂度内将区间拓展到 \([l\pm1,r\pm 1]\) ,那么我们就能够在 \(O(n\sqrt n)\) 的时间复杂度内计算所有询问的答 阅读全文
posted @ 2025-08-08 20:34 才瓯 阅读(6) 评论(0) 推荐(0)
摘要:Tarjan 算法处理 缩点、割点、割边 强连通分量SCC缩点 对有向图进行简化操作,将图中的强连通分量合并为一个节点 合并后的节点具有合并前所有节点的权值贡献且不会重复,对于边的处理当且仅当 SCC 内部有出入边时才映射 例:洛谷P3387 https://www.luogu.com.cn/pro 阅读全文
posted @ 2025-07-14 14:45 才瓯 阅读(14) 评论(0) 推荐(0)
摘要:Splay平衡树 基于 Splay 伸展操作维持平衡的二叉树,不断将某个节点旋转到根节点,可以在均摊 \(O(\log n)\) 的时间内完成插入查找和删除操作 节点的定义: struct node{ int s[2];//左儿子0,右儿子1 int v;//节点的权值 int cnt;//权值的次 阅读全文
posted @ 2025-06-01 13:18 才瓯 阅读(47) 评论(0) 推荐(0)
摘要:数位DP问题 用来解决一类对数位进行某种计数的问题,通常有以下特点: 统计满足某种条件或约束的数量,且需要统计的区间跨度极大 某些条件或约束可以利用数位拆分的方式去满足 通常给定的区间 \([l,r]\) 可以拆分为 \([1,l],[1,r]\) 然后利用前置和做差计算 因为需要满足的约束以及边界 阅读全文
posted @ 2025-05-24 17:13 才瓯 阅读(36) 评论(0) 推荐(0)
摘要:求强连通分量 相关概念 强连通:在有向图 \(D\) 中,\(D\) 的任意两个节点连通 强连通分量:一张平凡图上的极大强连通子图 DFS 生成树:以图上某节点通过 DFS 访问的方式,与可达节点形成的树结构,依据树结构图上的边主要分为四类 树边:在 DFS 生成树上连接两个节点的边,在图上为每次搜 阅读全文
posted @ 2025-05-21 19:23 才瓯 阅读(20) 评论(0) 推荐(0)
摘要:树链剖分/重链剖分 关于树上的查询修改问题,如果采用DFS的方式处理,时间效率会上升到 \(O(n^2)\) 可以将树转化为多个链,然后映射到线段树上维护,可以降低时间复杂度到 \(O(n\log n)\) 树链剖分就是将树切分为多个链,然后将这些链上的节点紧密地映射到线段树上 struct nod 阅读全文
posted @ 2025-05-04 15:34 才瓯 阅读(18) 评论(0) 推荐(0)
摘要:最近公共祖先LCA 倍增法求LCA vector<int> e[500010]; int dep[500010],fa[500010][20]; void solve(){ cin>>n>>m>>s; for (int i=1;i<=n-1;i++){ int u,v; cin>>u>>v; e[u 阅读全文
posted @ 2025-05-03 13:15 才瓯 阅读(25) 评论(0) 推荐(0)
摘要:树的重心与直径 树的重心 有以下三种定义方式: 以某点为根,最大子树的节点数最小,该点为重心 以某点为根,所有子树的节点数不超过总节点数的一半,该点为重心 以某点为根,所有节点到这个根边数和最小,该点为重心 也存在以下这些性质: 一棵树最多有两个重心,且这两个重心一定相邻 给这棵树增加或减少一个叶子 阅读全文
posted @ 2025-04-27 19:14 才瓯 阅读(65) 评论(0) 推荐(0)
摘要:区间DP问题 一般来说,区间DP问题都能被转化为多个子区间的合并,在过程中可以枚举合并点将问题分为左右两个部分,从子区间的最优解转移到区间的最优状态上 线性区间合并 https://www.luogu.com.cn/problem/P1775 int m[310]; int dp[310][310] 阅读全文
posted @ 2025-04-27 19:14 才瓯 阅读(12) 评论(0) 推荐(0)
摘要:树形DP 是在树上进行的动态规划,所以一般采用递归的方式计算状态的转移 https://www.luogu.com.cn/problem/P1352 一道经典的树形DP问题引入 int n; vector<int> e[6010]; int a[6010]; bool st[6010]; int d 阅读全文
posted @ 2025-04-20 16:25 才瓯 阅读(71) 评论(0) 推荐(0)
摘要:KMP字符串匹配算法 常见的 \(O(n*m)\) 暴力算法 for (int i=1;i<=n;i++){ int j,k; for (j=i,k=1;k<=m;j++,k++){ if (s1[j]!=s2[k]) break; } if (k==m) cout<<i; } 最外层用 \(i\) 阅读全文
posted @ 2025-03-28 17:32 才瓯 阅读(62) 评论(0) 推荐(0)
摘要:拓扑排序 算法应用 对于给定的有向无环图,给出一个序列满足对于图中的每条有向边 \((x,y)\) ,\(x\) 在这个序列中都出现在 \(y\) 之前 那么定义这个序列为这张图的一个拓扑序列 DFS处理拓扑序 DFS过程中会对每条路径都记录一次,利用 c[x] 记录每个点的状态,\(0,-1,1\ 阅读全文
posted @ 2025-03-21 20:54 才瓯 阅读(29) 评论(0) 推荐(0)
摘要:二分图的染色法判定 二分图的定义:如果一张无向图的 \(n\) 个顶点可以分为 \(A,B\) 两个不相交的集合,并且同一集合内的所有点之间没有边相连,记这张特征图为二分图 \(\implies\) 每一条边都是连接两个集合的边,所以从一个集合出发需要经过偶数条边才能走回原来的集合 推理:二分图不存 阅读全文
posted @ 2025-03-16 21:21 才瓯 阅读(26) 评论(0) 推荐(0)
摘要:最小表示法,字符串哈希 最小表示法 给出字符串 \(S\) ,在其所有的循环同构串中选择字典序最小的一个串 循环同构:当字符串 \(S\) 中可以选择一个位置 \(i\) ,满足 \(S_{i,n}+S_{1,i-1}=T\) 那么记 \(S,T\) 循环同构 可以利用类似双指针的办法解决 构造字符 阅读全文
posted @ 2025-03-09 13:07 才瓯 阅读(42) 评论(0) 推荐(0)
摘要:01分数规划 这是一类常见的问题,通常需要求解的是一个分数表达式的极大值,例如 \[\frac{\sum_i^j w}{\sum_i^j t} \]可以采取二分的方式进行约算,设 \(x\) 满足 \[\frac{\sum_i^j w}{\sum_i^j t}\ge x \]不等式转化为 \[\su 阅读全文
posted @ 2025-03-09 13:07 才瓯 阅读(17) 评论(0) 推荐(0)
摘要:Astar A* 算法路径搜索应用 在求解路径问题时,往往会搜索许多不必要的路径,计算机无法简单地实现人的宏观思维 所以,可以给当前需要搜索的路径增设一个估价函数,令计算机判断当前的最优解,这样可以节省许多不必要的时间开支 估价函数预处理出每个状态到目标状态的所需代价的估计值 \(f(x)\),实际 阅读全文
posted @ 2025-03-01 19:04 才瓯 阅读(128) 评论(0) 推荐(0)