理解
hkr04
这个作者很懒,什么都没留下…
展开
-
浅析线段树(使用lazy tag)
这是百度百科上的图,线段树定义可以看这里->定义戳我任何一个区间都能被分成两个小区间,从而能够把对于大区间的查询转换为对几个小区间和小小区间和小小小区间……的查询。 这是我对线段树的朴素理解。 从图上也可以明显地看出任意一个长度大于1的区间都由两个小的子区间组成,子区间再往下分,直到区间内只有一个元素无法再分。**因此,对于每一个长度大于1的区间[l,r],有mid=(l+r...原创 2018-08-26 15:38:39 · 2546 阅读 · 7 评论 -
通过二进制理解快速幂
任何十进制数都可以用二进制来表示,且每一位最多为1,最少为0。 举个例子,15=2°×1+2¹×1+2²×1+2³×1。利用二进制转换方法可将15转换为1111(拆分成二的幂)。 那么a^15就等于a^2°×1×a^2¹×1×a^2²×1×a^2³×1,即:a的二次方幂与15在二进制位上的各位的乘积再相乘。 代码实现:long double power...原创 2018-08-26 19:01:00 · 321 阅读 · 0 评论 -
浅谈快速排序
它的基本框架就是:定左端一个数为基数x,提取出来(相当于空出一个位置放置右端比x大的数)。然后把小于x的数扔左边,大于x的数扔右边。 两个数i , j代表数组两端始末位置,开始扫描。因为第一步处理了左边,第二步就应该处理右边。 从右边扫描,大的不管,将比x小的数扔到数组左端,左端前进一位;再从左开始扫描,将比x大的扔到数组右端,右端后退一位。如此反复,当i = = j时,说明数组...原创 2018-08-26 19:03:53 · 193 阅读 · 0 评论