
ACM的常用算法
北冥有鱼555
北大的一枚小博士
展开
-
再谈RMQ算法
关于RMQ算法的实现以及想法 大家知道RMQ算法就是求一个区间里的任意区间的最大值和最小值的高效算法,因为只需要一个预处理就可以在o(1)的时间里算出任意区间的最值。所以当遇到在一个区间里求最值之差不超过某一个数的最长子区间问题就可以利用该方法,当然还需要用到二分算法。举个例子:在8,4,2,4,3,2,4,5,2,6这个序列中求出最大值与最小值之差小于3的最长子序列。显然是4,2,4,3原创 2015-07-25 22:25:45 · 431 阅读 · 0 评论 -
RMQ算法的介绍
1. 概述 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j间的最小/大值。这两个问题是在实际应用中经常遇到的问题,下面介绍一下解决这两种问题的比较高效的算法。当然,该问题也可以用线段树(也叫区间树)解决,算法复杂度为:O(N)~O(logN),这里我们暂不介绍。转载 2015-07-22 21:46:01 · 411 阅读 · 0 评论 -
关于约数定理
套用百度的话:对于一个大于1正整数n可以分解质因数: 则n的正约数的个数就是 。其中a1、a2、a3…ak是p1、p2、p3,…pk的指数。用这个定理求一个数的约数个数是非常快的,贴出一道训练题目:hdu 1492 -求约数的个数贴出代码://约数定理的#include #include #includ原创 2017-05-17 20:13:17 · 838 阅读 · 0 评论