- 博客(72)
- 收藏
- 关注
原创 区域赛算法模版第八章---贪心(Greedy)
模型贪心策略经典题区间调度按右端点排序无重叠区间区间覆盖按左端点排序,每次选延伸最远的视频拼接区间选点按右端点排序,选右端点用最少箭引爆气球交换论证比较交换前后,推导排序规则两地调度、国王游戏哈夫曼合并每次合并最小的两个合并果子反悔贪心先选,不行再反悔建筑抢修中位数选中间点货仓选址单调栈维护最优单调结构删数字得最小数。
2026-10-17 15:35:33
163
原创 区域赛算法模板--第七章搜索与博弈
操作复杂度单堆 SG 打表O(n ·多堆异或O(n)SG + 记忆化搜索O(状态数 × 转移数)Nim 积O(log² n)线性基 + NimO(n log V)
2026-10-16 21:30:40
104
原创 区域赛算法模版第五章---数学与数论
适用场景: 大指数取模、组合数预处理、线性同余方程思路要点:扩展欧几里得求逆元(模数可为任意值):扩展欧几里得适用于模数为任意值(不要求质数),但要求 gcd(a, m) = 1求解 ax ≡ 1 (mod m) 等价于解 ax + my = 1,x 的最小正整数解即为逆元常见应用:适用场景: 频繁查询组合数 C(n, k) mod p思路要点:卢卡斯定理(n 很大,p ≤ 10⁵):卢卡斯定理将 n、k 表示为 p 进制,逐位计算组合数再相乘适用场景:n ≤ 10¹⁸,p 为质数且 p
2026-10-16 21:04:14
272
原创 区域赛算法模版第四章---数据结构
适用场景: 区间修改、区间查询(和、最值等)思路要点:每个节点代表一个区间,二叉树结构懒标记:延迟下传修改,整块更新时打标记查询/更新到子节点前必须 push_down时间复杂度 O(log n) 单次操作适用场景: 静态区间第 k 小/大、区间不同数个数、可持久化权值线段树等思路要点:补充说明:数组大小: 是常见开法,因为每次修改新建约 个节点,总共约 个节点。若数据范围较大,可改为 或 等。静态区间第 k 小完整调用示例:与普通线段树的区别:普通线段树节点编号固定为 和 ,主席树动
2026-10-16 20:28:36
366
原创 三、区域赛算法模版第三章---字符串相关算法
适用场景: 模式匹配、周期串、前缀后缀相关、字符串最小循环节、前缀出现次数统计、KMP 自动机 + DP、字符串压缩核心思想: 利用已经匹配过的信息,避免暴力回溯。KMP 的核心是前缀函数(也叫 next 数组)。前缀函数定义:π[i]=max{k∣0≤k<i, s[0..k−1]=s[i−k+1..i]}\pi[i] = \max\{k \mid 0 \le k < i, \; s[0..k-1] = s[i-k+1..i]\}π[i]=max{k∣0≤k<i,s[0..k−1]=s[i−k+1.
2026-10-13 22:25:51
89
原创 区域赛模板笔记第二章---动态规划
类型时间复杂度空间复杂度01背包O(nV)O(V)完全背包O(nV)O(V)多重背包(二进制)O(V)多重背包(单调队列)O(nV)O(V)分组背包O(nV)O(V)二维费用背包O(nV₁V₂)O(V₁V₂)树上背包O(nV)O(nV)类型状态设计转移方向树形依赖背包dp[u][j]自底向上合并儿子最大独立集dp[u][0/1]自底向上最小点覆盖dp[u][0/1]自底向上树的直径down[u]+ 全局 ans自底向上换根 DP。
2026-10-13 19:33:19
695
原创 区域赛模板笔记第一章---图论算法总结
适用场景: 单源最短路,非负权边思路要点:模板题链接:模版题核心思路:所以模版代码如下:1.1.3区域赛题题目链接:2025网络亚洲预选赛题目重现和思路讲解:所以基于以上思路代码如下:适用场景: 稀疏图求MST算法原理:模板题链接:最小生成树模版题思路要点:边按权值从小到大排序依次加边,用并查集判环选满 n-1 条边结束时间复杂度 O(E log E)算法原理:模版题链接: kruskal重构树模板1.2.3 区域赛题2021 ICPC 上海站 H 题 “Life is
2026-10-13 10:37:31
160
原创 校赛题目分享
每个孩子只能看见与自己相邻的 2 个孩子(左边的和右边的)的情况,只会关心相邻的且比自己评分低的同学的糖果数(如果相邻 2 个孩子的评分相等,则不关心)。为保证公平,相邻的孩子中,评分高的孩子必须获得更多的糖果(如果左右相邻 2 个孩子的评分相等,则不关心,即分最少的糖果 1 个)。同学 1 和同学 4 在第 3 分钟开始等车,等待 0 分钟,在第 3 分钟乘坐摆渡车出发。摆渡车在第 4 分钟回到人大附中。同学 2 和同学 3 在第 4 分钟开始等车,等待 0 分钟,在第 4 分钟乘坐摆渡车出发。
2026-09-30 19:14:08
296
原创 子数组问题
其实对于子数组的问题,之前总结的还不够深,所以我在这里重新总结一下:这个我现在所会的方法就三种:①暴力解法,②前缀和+贪心,③kadane+贪心,事实上还可以用莫队来解,不过我并不熟悉这种写法,首先前缀和就是把原数组前多少项加起来,那么kadane算法是啥(其实我和我同学一般叫他老登算法哈哈~~~):本质上我们再求子数组的和最大的时候,我们遍历数组,我们把每一个数字都看作我们子数组部分的末尾,求他前面部分的加和,如果前面因为有负数让加和小于当前末尾值了,那就将子数组的开头移到这个末尾值来,重新遍历,不断更新
2026-09-10 16:04:37
36
原创 快速幂的学习
场景时间复杂度总体复杂度最坏情况实际运行效率题目中 n <= 100,k <= 10^12,配合剪枝优化能在 1 秒内轻松跑完。场景空间复杂度总空间复杂度O(n^2)代码运行时峰值大约同时存在 2~3 个 n*n 矩阵,每个矩阵占 (n^2 \times 8) 字节,对于 n <= 100 来说非常小。递推式阶数 k矩阵大小矩阵第一行矩阵其余部分1 阶1 x 1[c1]无2 阶2 x 2[c1, c2]第二行 [1, 0]3 阶3 x 3第二行 [1, 0, 0];
2026-09-10 15:55:45
148
C语言入门级编程题目集合:基础算法与数据处理综合训练
2026-05-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1