每天学一丢
文章平均质量分 86
ShadowGhostH
这个作者很懒,什么都没留下…
展开
-
每天学一丢之01 BIT (4.17)
第一次知道BIT是在去年暑期培训的时候了,当时听线段树感觉似懂非懂,但至少知道这个线段树它想表达个什么意思,前几天校赛也用一种类似于模拟的手法实现了线段树,然后今天从套题训练又转至专题训练,就对那个暑期培训云里雾里畏之如蛇蝎的树状数组又拿出来看了一眼,然后居然发现能看懂了!!!然后居然发现这玩意儿这么简单???然后居然发现前几天校赛用线段树做我是不是个智障!!!每天学一丢系列,意为每天学一点丢一点...原创 2018-04-17 19:57:34 · 263 阅读 · 0 评论 -
每天学一丢之 坐标离散化 (4. 24)
每天学一丢意为每天学一点丢一点。然后每天二字名存实亡,还是坚持在每天学习,只是每天学习的东西不够单开一文去总结。其实第二个本来打算写LCA的,但是LCA还没学明白加上今天刚刚又口胡一遍坐标离散化,那就总结一下吧。坐标离散化,适用于一个较大的图中,有很多无用的部分,这时我们通过离散化的方式,将他们缩小并保持原关系不变。首先给出一个一维离散化的例子。给出数轴N(N<1e5, val(N)<...原创 2018-04-24 19:35:25 · 604 阅读 · 0 评论 -
每天学一丢之 IDDFS (5.28)
每天学一丢意为每天学一点丢一点。然后每天二字名存实亡,还是坚持在每天学习,只是每天学习的东西不够单开一文去总结。这段时间在准备各种比赛,所以题解没有跟上,还不好说会不会补训练赛的题解。IDDFS(iterative deepening deep-first-search)迭代 加深 搜索首先第一点我们知道,在迷宫问题计算最短路的时候,我们经常使用BFS 这样做的好处是:第一次搜索到目标点时,就是到...原创 2018-05-28 19:04:40 · 1193 阅读 · 0 评论 -
每天学一丢之 LCA-Tarjan
每天学一丢意为每天学一点丢一点。LCALCALCALCA 即树上最近公共祖先,TarjanTarjanTarjan 可以离线地去求 LCALCALCA,并且可以维护树上两个点的距离。 TarjanTarjanTarjan 的复杂度是 O(n+q)O(n+q)O\left( n+q\right) 的TarjanTarjanTarjanTarjan 不仅可以解决 LCALCALCA ...原创 2018-09-13 19:18:27 · 183 阅读 · 0 评论 -
每天学一丢之 LCA-倍增
每天学一丢意为每天学一点丢一点。LCALCALCALCA 上一篇中已经解释过,而 TarjanTarjanTarjan 离线算法可以在 O(n+q)O(n+q)O(n+q)的时间复杂度下,求得询问两点的 LCALCALCA。 而倍增是一种在线查询的算法,他的预处理复杂度是 O(nlogn)O(nlogn)O(n\log n),每次查询是 O(logn)O(logn)O(\log ...原创 2018-09-14 14:03:36 · 223 阅读 · 0 评论 -
每天学一丢之 Manacher
每天学一丢意为每天学一点丢一点。ManacherManacherManacherManacher 算法主要解决的问题是最长回文子串,为了解决奇偶性的问题,我们在原字符串中加入了新的字符作为通配符,例如我们将 abababcabababcabababc 扩充为了 #a#b#a#b#a#b#c#\#a\#b\#a\#b\#a\#b\#c\##a#b#a#b#a#b#c#,因为 #\## 号都是相同...原创 2018-09-26 14:25:09 · 182 阅读 · 0 评论 -
每天学一丢之 单调栈
每天学一丢意为每天学一点丢一点。单调栈单调栈即我们在维护栈时,同时让栈里的元素维持着单调性。即当我们维护一个单调上升的栈时,如果需要入栈一个新元素后,如果这个元素之前有比他大的值,破坏了栈内元素的单调性,我们就要把比它大的值全部出栈,此时再将新元素入栈,来保证栈内元素的单调性。单调是说栈内元素具有单调性,功能利用单调栈,我们可以在 O(n)O(n)O(n) 的时间复杂度内,维护序列中任意一...原创 2018-10-10 10:58:32 · 178 阅读 · 0 评论