线段树,每个结点维护区间内的最大值M,和sum,最大前缀和lm,最大后缀和rm.若要求区间为[a,b],则答案max(此区间M,左儿子M,右儿子M,左儿子rm+右儿子lm).---------------------------------------------------------------...
分类:
其他好文 时间:
2015-04-01 00:08:12
阅读次数:
137
收获: 1、积性函数的积也是积性函数,基本的积性函数:常数函数,正比例函数,欧拉函数,Mobius函数,积性函数一般都知道表达式,所以一般都可以在线性筛时搞定。 2、遇到整除求和时,这个东西就已经是最简了,所以可以考虑提出它,然后尝试搞后边的东西的前缀和,如果可以成功,那么就可以在O(sqrt(.....
分类:
其他好文 时间:
2015-03-31 19:54:44
阅读次数:
124
思路:x轴和y轴的情况是独立的,可以分开考虑,那么只要枚举位置,能维护最小值即可,这只要把公式拆开,预处理出两个前缀和即可,一个是w的前缀和,一个是w * x的前缀和
代码:
#include
#include
#include
using namespace std;
const int N = 50005;
typedef long long ll;
int t, n, m, q...
分类:
其他好文 时间:
2015-03-29 23:42:17
阅读次数:
125
对于暴力搜索法,当搜索词对应的字符与字符串中的字符不匹配时。将搜索词整个后移一位,再从头逐个比较。这样做虽然可行,但是效率很差,因为你要把”搜索位置”移到已经比较过的位置,重比一遍。应用KMP算法之后,则有:
移动位数 = 已匹配的字符数 - 对应的部分匹配值
“部分匹配值”就是”前缀”和”后缀”的最长的共有元素的长度。KMP算法实现代码如下:void prefixFun(char *pat...
分类:
编程语言 时间:
2015-03-29 20:59:34
阅读次数:
259
玛雅……之前一直云里雾里的……今天终于想明白了vfk说的吼啊:莫比乌斯变换起到类似前缀和的作用!$f(n)=\sum_{d|n}g(n)$QAQ原来蒟蒻之前根本没理解莫比乌斯变换是啥啊……而莫比乌斯反演是干啥呢?如果给你一个数组,让你算它的莫比乌斯变换,那就很好搞了……就是搞个类似前缀和的东西……如...
分类:
其他好文 时间:
2015-03-28 23:06:11
阅读次数:
183
参考:树状数组简述:一个用来求数组列前缀和的数据结构,可以在O( log(n) )的时间内得到数列的任意前缀和,同样以相同时间对某项加一个常数,是一个很强大的数据结构。认识:有段时间一直以为树状数组就是普通的数组,只不过可以用它来存储二叉查找树,后来才知道这货其实是一个很难的东西。不过说难,其实它也是一个蛮简单、蛮好入手的一个东西——关键代码相当简洁,只是有点难以理解,但是,用一个图就可以表达清楚了...
分类:
编程语言 时间:
2015-03-28 14:23:10
阅读次数:
177
n位不含前导零不含连续1的数共有fib(n)个,fib(n)为斐波那契数列。所以可以预处理一下fib的前缀和,查找一下第n个数是k位数,然后再递归计算它是第k位数里的多少位。举个例子,比如说要找第11个数,发现它是个5位数,所以最高位是个1,然后它还是5位数里的第4个数。这时要找第三个数了,因为后面...
分类:
其他好文 时间:
2015-03-28 14:12:18
阅读次数:
111
ai和s+1-ai是对称的,所以反转偶数次的相当于没翻转,奇数次的要翻转,所以我们只要统计每个字母翻转的次数,用前缀和处理。...
分类:
其他好文 时间:
2015-03-28 08:56:12
阅读次数:
237
定义 二叉索引树,binary index tree,又名树状数组,或Fenwick Tree,因为本算法由Fenwick创造。 对于数组A,定义Query(i,j) = Ai +Ai+1 + … + Aj. 比较好的做法:使用前缀和,Sum(j) – Sum(i-1)即可得到Query(i,j) ...
分类:
其他好文 时间:
2015-03-28 01:11:16
阅读次数:
642