摘要:
算法实现: 初始化:用dp实现初始化。a[]为原始数据数组f,[i][j]表示从i向后的2j个数字中的最值。显然f[i][0]=a[i]; 我们将f[i][j]分为两段,一段为a[i]~a[2j-1]的最值即f[i][j-1],一段为a[i+2j-1]~a[i+2j]即f[i+1<<(j-1)][j 阅读全文
摘要:
树状数组是一种可以在O(log n)内区间求和或单点修改的数据结构,因其代码简单且不需递归,效率较线段树高。 树状数组的实现: Lowbit:lowbit(k)是指整数k的二进制的右数第一个1以右的部分的大小,如(6)10=(110)2则lowbit(6)=(10)2=(2)10。 lowbit的简 阅读全文