随笔分类 - 分治
摘要:如何一个序列内查找出一个我们要的数呢? 若序列无序,我们可以选择Hash,但这不是我们要讲的重点 当序列有序时,我们可以选择一次查询时间为lg(n)的二分算法 考虑一段有序的区间内,我们取出这个区间内的中心元素,判断其是否为我们想要的那个数, 如果这个数比当前的中心元素小,说明我们要找的数一定在区间
阅读全文
摘要:线段树常常用于求解某些区间上的问题,它通过区间标记和分治思想,可以较快的处理区间问题,在理解线段树前,我们先理解一种较为简单的思想——分块 分块: 顾名思义,将要处理的区间分成块,一般一个块的大小为sqrt(n), 例如,我们要对某个区间做加法,之后查询一段的值,显然我们对于每个块用一个区间标记来表
阅读全文
摘要:(我貌似不会写二进制拆分的快速幂。。。。) 对于求解a^b mod p,我们的暴力手段是模拟,将b个a一个一个乘上去再取模 时间显然是O(b),当b有几千万,乃至几亿时,我们发现这显然会超时 思考有没有优化的空间呢 我们发现求解a^b mod p 等价于下面的问题: (a^2) ^ (b/2) mo
阅读全文