学习记录
zqy1018
这个作者很懒,什么都没留下…
展开
-
【学习记录】线性同余不等式
考虑解 L≤Dx mod M≤RL\le Dx \bmod M \le RL≤DxmodM≤R,其中 0≤L≤R<M,D<M0 \le L \le R < M, D < M0≤L≤R<M,D<M。假设有解,那么存在 yyy,使得 L≤Dx−My≤ML\le Dx -My \le ML≤Dx−My≤M。变形得到Dx−R≤My≤Dx−LDx - R\le My \le Dx-LDx−R≤My≤Dx−L对 DDD 取模,得到−R mod D≤(M mod D)y≤原创 2020-09-24 18:49:16 · 451 阅读 · 0 评论 -
【学习记录】稳定婚姻问题
定义题意:有 nnn 男 nnn 女,每一个人都对其他 nnn 个异性有不同程度的喜爱,用一个长为 nnn 的列表表示,列表中的异性按喜爱程度从高到低排列。问能否找出一个结婚方案,使得不存在两对夫妻 (m,w′),(m′,w)(m, w'), (m', w)(m,w′),(m′,w),使得 mmm 比起 w′w'w′ 更喜爱 www,www 比起 m′m'm′ 更喜爱 mmm,如果两对夫妻 (m,w′),(m′,w)(m, w'), (m', w)(m,w′),(m′,w) 没有上述情况就称这两对夫妻是原创 2020-09-10 10:29:31 · 1203 阅读 · 1 评论 -
【学习记录】矩阵乘法
基本一个 n×mn \times mn×m 和 m×pm \times pm×p 的矩阵相乘的时间复杂度为 O(nmp)O(nmp)O(nmp),得到的结果为 n×pn\times pn×p 的矩阵。由于矩阵乘法有结合律,因此对于一个 nnn 阶矩阵 AAA,可以利用快速幂在 O(n3logk)O(n^3 \log k)O(n3logk) 的时间内计算 AkA^kAk。Strassen 矩阵乘法应用了分治的想法,把原来的 n×nn \times nn×n 和 n×nn \times nn×n 的矩原创 2020-09-06 20:22:07 · 359 阅读 · 0 评论 -
【学习记录】树状数组
能用一个二进制数分出 O(logn)O(\log n)O(logn) 个小区间:从 [x−lowbit(x)+1,x][x - \operatorname{lowbit}(x) + 1, x][x−lowbit(x)+1,x] 递归下去。利用这种思想,对于一个数组 a[i]a[i]a[i],可以构造出一个数组 c[i]c[i]c[i],其中 c[x]=∑i=x−lowbit(x)+1xa[i]c[x] = \sum _{i=x - \operatorname{lowbit}(x) + 1}^{x} a原创 2020-08-29 15:34:46 · 205 阅读 · 0 评论 -
【学习记录】并查集
并查集是一个实现起来较为简单的数据结构。它维护的是一系列不相交集合(当然方便的说法是一堆点),每一个集合都由该集合中的一个代表元表示。但它可以有奇妙的用法。基本实现整个并查集实际上是一个森林,每一个元素 xxx 都有一个属性 fa[x]fa[x]fa[x] 作为 xxx 所在的树的父节点。树根的父节点设为它本身。这样只要不断沿着 fa[x]fa[x]fa[x] 走就能走到这一棵树的根,从而知道一个元素的归属。事实上整棵树的形态并不重要,因为我们需要知道的是一个元素所在树的根节点。因此可以在递归找根时,原创 2020-08-29 13:19:55 · 136 阅读 · 0 评论 -
【学习记录】环计数问题
环计数问题是一类比较有意思的问题。原创 2020-08-28 00:36:07 · 702 阅读 · 0 评论 -
【学习记录】线性选择
线性选择我们可以在 O(nlogk)O(n\log k)O(nlogk) 的时间内获得一个序列内的第 kkk 大的数。但是有没有更快的方法?快速选择一种方法是仿照快速排序,每次随机选择一个主元,并且将小于它和大于它的元素分别放到它的左边和右边。这样我们就很容易判断第 kkk 大的元素在哪一部分,从而递归的去寻找。最优情况下,我们每次找到的都是中位数,这样时间复杂度是线性的。但在极端情况下,对于某个序列和某个 kkk,该算法的时间复杂度会退化到 O(n2)O(n^2)O(n2) 级别。而最原始的快速原创 2020-08-13 23:26:38 · 522 阅读 · 0 评论