摘要: 字符串哈希从入门到精通 前言 字符串哈希是处理字符串匹配、子串查询等问题的利器。它的核心思想是将字符串映射为一个整数,从而将字符串比较转化为整数比较,将 O(n) 的比较降为 O(1)。 本文通过三道模板题,带你从零掌握字符串哈希。 一、哈希原理 1.1 基本概念 把一个字符串看作一个 B 进制数: 阅读全文
posted @ 2026-07-08 16:18 diaitor 阅读(3) 评论(0) 推荐(0)
摘要: 倍增法求LCA及树上路径极值 前言 最近在整理图论模板,把LCA和树上路径最大/最小值问题一并总结一下。这两个问题本质上都是利用倍增思想,在 O(log n) 时间内完成查询。 一、LCA模板(P3379) 核心思想 预处理每个节点的 2^k 级祖先,查询时先将较深节点上跳至同一深度,再一起上跳找到 阅读全文
posted @ 2026-07-07 16:29 diaitor 阅读(3) 评论(0) 推荐(0)
摘要: 最短路 一.算法 1.Dijksra 仅适用于起点确定,边权非负的情况 时间复杂度\(O(mlog_m)\) 流程 从起点开始,每次找到没有被确定最短路的最近的点 确定到该点的最短路 重复执行到所有点都被确定 代码示例 #include<bits/stdc++.h> #define zyy pair 阅读全文
posted @ 2026-07-06 15:45 diaitor 阅读(3) 评论(0) 推荐(0)
摘要: 最小生成树 该算法分为两种主要算法,分别是以边权来贪心的即(Kruskal)和以点权来贪心的(Prim)算法 1.Kruskal //Kruskal #include<bits/stdc++.h> using namespace std; const int N=2e5+10; struct edg 阅读全文
posted @ 2026-07-05 16:36 diaitor 阅读(3) 评论(0) 推荐(0)