109. 天才ACM(倍增,归并)
先介绍一下倍增算法
倍增:
倍增和二进制划分两个思想相结合,快速幂就是采用了倍增的思想
有这样一个问题:
给定一个长度为N的数列A,然后进行若干次询问,每次给定一个整数T,求出最大的k,满足,T一定小于整个区间的和
线性探索的时间复杂度是O(N),而倍增可以优化到O(logn)
倍增原理:任何一个数都可以表示为多个2次幂的和
1.令p=1,k=0,sum=0
2.比较A数组中k之后的p个数的和与T的关系
sum+S[k+p]-S[k]<=T 令sum+=S[k+p]-S[k]...
原创
2022-01-21 14:47:05 ·
531 阅读 ·
0 评论