论题选编
zqy1018
这个作者很懒,什么都没留下…
展开
-
【论题选编】单调栈和全 1 子矩阵
(低技术力预警) 有时我们希望对 01 矩阵中,每个全 1 子矩阵做一些统计。 一种通用的方法是单调栈。我们从上到下枚举行,然后考察以该行为底边的所有全 1 子矩阵。利用单调栈,我们可以得到以该行为底边的所有极大子矩阵。 假设对一个高为 hhh、宽为 www 的矩形,其权值为 f(h,w)f(h, w)f(h,w),那么对一个高为 hhh、宽为 www 的极大子矩阵而言,其包含的所有矩形的贡献和为 sum(h,w)=∑h′=1h∑w′=1w(w−w′+1)f(h′,w′) sum(h, w) = \sum_原创 2020-10-25 00:34:37 · 227 阅读 · 0 评论 -
【论题选编】可重集表示数问题
(最近做题太少,只能水一个简单的文章。) 大概就是三个题目混合起来。 首先给出定义:一个可重集 SSS 可以表示出数 xxx,当且仅当存在 T⊂ST\subset ST⊂S 使得 TTT 中元素的和恰为 xxx。 例 1 题意:给定数组 aaa 和数 nnn,问最少向 aaa 中插入多少个在 [1,n][1, n][1,n] 中的正整数,能让 aaa 构成的可重集表示出 xxx。(来源:Leetcode 330) 贪心。 一个很显然的想法是:如果当前数组覆盖不到 xxx,那么我们肯定要添加一个 ≤x\le原创 2020-10-21 22:14:09 · 353 阅读 · 0 评论 -
【论题选编】稠密图最短路
有的最短路题目中,可能边的数目很大,朴素建图边的数目为 O(∣V∣2)O(|V|^2)O(∣V∣2)。这样很难直接应用 Dijkstra 算法等。 对付这种图,一般采用的策略是: 去除无用选项。有可能两点之间直接连接的路径长一定不是最短路径,这样就可以排除大多数路径,只构造那些有用的边。 构造等价选项。有可能两点之间的路径长完全等价于按照某种简单模式形成的路径长,这样就可以考虑这种简单的模式。 优化建图方式。例如建立虚拟点,以代替完全子图中各个点之间的相互连边。 例 1:最短路 1 题意:有 nnn 个原创 2020-08-21 23:50:08 · 371 阅读 · 0 评论