代码模板-矩阵

汇总矩阵相关代码模板:矩阵乘法与缓存友好的循环顺序、矩阵快速幂(单位矩阵初始化、跳过零元优化),以及 (min, +) 广义矩阵乘法求恰好经过 k 条边的最短路。

代码模板

【线性代数】矩阵 学习笔记

从矩阵乘法的定义与实现讲起,介绍矩阵快速幂与转移矩阵构造,通过斐波那契数列、数列加速等例题讲解矩阵加速递推,并延伸到邻接矩阵幂计数定长路径与 (min, +) 广义乘法求恰好经过 k 条边的最短路。

学习笔记

从凌晨灵感到发布:一个 AI 可读的人脉图谱 Skill 开发全记录

记录从凌晨灵感出发,设计并发布一个 AI 可读的人脉图谱 Skill 的全过程:数据模型、独立 Obsidian Vault 架构、三层原子标签体系、图谱净化与审计脚本,以及打包发布到 SkillHub 的关键决策与资源链接。

AI

AtCoder ABC468 F - Chmax - Solution

将 1~N 的排列依次分配到两个变量上,最大化"当前值小于新值"的计数。核心结论:前缀最大值必贡献,剩余元素的最大贡献数为其 LIS 长度,答案 = 前缀最大值个数 + LIS(剩余序列),时间复杂度 O(N log N)。

题解

【动态规划】线性 DP 学习笔记

LIS 最长上升子序列的线性 DP 学习笔记,涵盖 O(n²) 朴素动态规划推导、最优子结构与无后效性分析、NOIP 2004 合唱队形例题,以及 O(n log n) 的 Patience Sorting(二分贪心)优化与常见误区。

学习笔记

洛谷 P1637 三元上升子序列 - Solution

给定长度为 $N$ 的序列,求满足 $i < j < k$ 且 $a[i] < a[j] < a[k]$ 的三元组个数。$N \le 10^5$,$a_i \le 10^9$。通过枚举中间位置 $j$,利用权值树状数组分别统计左右两侧的可行元素个数,$O(N \log N)$ 解决。

题解

LeetCode 4003 交替方向的最小路径代价 III - Solution

本题给出 $m \times n$ 网格,每个格子有入口代价和罚金。从 $(0,0)$ 出发,第 $k$ 步移动方向由 $k$ 的奇偶性决定(奇数步只能右/下,偶数步只能左/上),违反规则或原地等待需支付罚金。分析指出朴素 DFS 因方向奇偶交替导致搜索空间巨大,进而将「位置 + 步数奇偶性」纳入状态,转化为 $2mn$ 个节点的隐式图,每条合法移动(含等待)建有权边,跑 Dijkstra 即可求解。文章详细推导了状态设计、转移规则,给出了 C++ 参考实现,并总结了 vis 标记时机、罚金归属、整数溢出等避坑要点。

题解

LeetCode 3518 最小回文排列 II - Solution

利用康托展开 + 可重集排列计数,在 O(n·26·log n) 内求回文串所有不同排列按字典序排序后的第 k 个,通过剪枝提前判断无解情况。

题解

【组合数学】康托展开 学习笔记

介绍康托展开与逆康托展开的原理、公式推导和代码实现,涵盖排列排名计算、第 k 个排列生成,以及配合树状数组优化的 O(n log n) 解法。

学习笔记

代码模板-康托展开

康托展开 康托展开用于求 $1 \sim n$ 的排列在所有排列中的字典序排名,用树状数组维护未使用过的数中比当前数小的个数。预处理阶乘 $O(n)$,单次展开 $O(n \log n)$。 123456789101112131415161718...

代码模板
1234

本站由 zaochen 使用 Stellar 1.44.0 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
全站访问量 - 次 · 访客数 - 人 · 本页面浏览 -