Archive: 2024/5

处理重复叠加串上的匹配问题:滚动哈希法

摘要: 滚动哈希例子 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在文章 字符串哈希 中,我们学习了字符串哈希的原理和代码模板。 一些字符串中的经典问题用字符串哈希都可以解决,比如最长重复子串(力

多次查询两个子串是否相等:前缀哈希法

摘要: 可以用字符串哈希解决的经典问题 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在文章 字符串哈希 中,我们学习了字符串哈希的原理和代码模板。 一些字符串中的经典问题用字符串哈希都可以解决,比

完全数,因子之和函数

摘要: 完全数 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文我们介绍一下最早由古希腊人提出的完全数,也称完美数。对于一个正整数 $n$,如果除它自身以外所有的正因子之和等于该正整数 $n$ 自

回溯法最经典问题-数独

摘要: 数独的状态空间树与回溯法 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在文章 回溯法的思想、设计与分析 中,我们系统了解了回溯法的思想。 我们知道要用回溯法解决问题,首先需要明确问题的解空

字符串的循环同构与最小表示法

摘要: 循环同构字符串中哪个字典序最小 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 问题背景给定一个字符串 s,如果不断把最后一个字符放在开头,最终会得到 $n$ 个字符串,称这 $n$ 个字符串

图的维纳指数:反映图的扩散性的拓扑不变量

摘要: 图的维纳指数,反映图的扩散性的拓扑不变量,图算法计算 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 图的维纳指数最初引入是在化学领域,用于描述分子结构,这是一个图上的拓扑不变量,1947 年

两枚鸡蛋的鸡蛋掉落:单峰性、决策单调性、差分方程

摘要: 单峰性、二分优化 DP 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本题是基于各种单调性设计算法的经典例子,也是基于目标函数的单峰性、决策单调性优化 DP 的经典例子。从算法的大框架看,有

决策单调性的简单情况:决策候选集随状态推导递增而目标函数不变

摘要: 决策单调性的简单情况 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 决策候选集与最优决策考虑以下状态转移方程: dp[i] = \min\limits_{1\leq j 在推导状态 $dp

一元函数的单调性、凸性与单峰性

摘要: 一元函数的单调性、极值、凸性 【对数据分析、人工智能、金融科技、风控服务感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:潮汐朝夕我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文介绍一元连续函数的单调性、凸性、极值相关的概念以及主要定理。这些是二分算法的基础。 在单调性

单峰性与二分优化DP:N个鸡蛋掉落问题

摘要: 单峰性、二分优化 DP 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 我们知道如果一个序列是呈现出单调性的时候,经常设计基于二分的算法。对于动态规划的状态转移方程中,最优决策候选集合有时会呈

求解差分方程/函数方程优化DP:N个鸡蛋掉落问题

摘要: 可以直接作为差分方程/函数方程求解的状态转移方程 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 对于某些简单的状态转移方程,可以直接作为差分方程/函数方程求解出来。求通项公式很可能会比直接推

使得乘积最大的整数分拆:基于数学性质对决策空间剪枝

摘要: 动态规划解决数列第 n 项问题 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings \max\limits_{\substack{2 \leq k \leq x \\ \sum_{i=1}^{k

计数DP:基于初等计数原理与容斥原理设计状态表示

摘要: 带限制的排列数目 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文我们看一个比较困难的计数问题。统计带有某种限制的排列数目,给定的参数有 $n, l, d$ 三个,其中 $n$ 是物品种类

在DP状态转移的DAG上BFS:从动态规划的角度理解无权图最短路径

摘要: 在 DP 状态转移图上 BFS 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在组合数学中,在很多与数列 $\{a_{n}\}$ 相关的问题:给定初始值 $a_{0}, a_{1},\cd

通过不等式优化的算法问题

摘要: 不等式在算法优化中的应用 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 各位好,不等式经常在解决优化或最值问题时有所应用,例如均值不等式是我们高中时接触过的重要不等式,经常用于解决一些比较简

剪枝优化DP:基于数学性质排除大量无效决策

摘要: 剪枝策略减少最优决策候选集中的无效决策 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在基于动态规划解决最优性问题时,状态转移方程中,一个状态对应着很多决策。常规的方式是把这些决策都遍历一遍

无显式结构的动态规划:数列第n项问题

摘要: 动态规划解决数列第 n 项问题 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings \{a_{n}\}在组合数学中,在很多与数列 $\{a_{n}\}$ 相关的问题:给定初始值 $a_{0},

通过全局模板函数实现自定义vector的输出流操作符

摘要: 自定义 vector 的 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在使用 std::vector<T> 时,经常需要在调试的时候打印 vector 中的内容。每次打印的时候

迭代加深加上各种剪枝方法

摘要: 迭代加深加各种剪枝手法,解决搜索难题 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在文章 迭代加深 中,我们详细介绍了迭代加深的思想。本文我们来解决一个艰难的问题,除了迭代加深,还需要各种