差分数状数组

本文探讨了差分数状数组的概念及其在区间加和区间查询中的应用,通过差分思想实现区间加值,简化了线段树的操作。同时,介绍了唯一分解定理,分析了正整数的标准分解式与其正因数个数和正因数之和的关系。

差分数状数组

用于区间加和区间查询,较线段树来讲更为简洁

之所以称之为差分数状数组,是因为其运用了差分的思想实现了区间加值。

首先考虑差分数组d:

d[i]=a[i]−a[i−1] d[i]=a[i]-a[i-1] d[i]=a[i]a[i1]

则对于a[x]有

a[x]=∑i=1xd[i] a[x]=\sum_{i=1}^xd[i] a[x]=i=1xd[i]

再设Sum数组为a数组的前缀和,则有

Sum[x]=∑i=1xa[i] Sum[x]=\sum{_{i=1}^x}a[i] Sum[x]=i=1xa[i]

带入对于d数组的定义,则有

Sum[x]=∑i=1x∑j=1id[j] Sum[x]={\sum_{i=1}^x\sum_{j=1}^i}d[j] Sum[x]=i=1xj=1id[j]

根据上式可推出

Sum[x]=∑i=1x(x−i+1)×d[i] Sum[x]=\sum_{i=1}^x(x-i+1) \times d[i] Sum[x]=i=1x(xi+1)×d[i]

分离两侧有

Sum[x]=(x+1)×∑i=1x−∑i=1xi×d[i] Sum[x]=(x+1)\times\sum_{i=1}^x-\sum_{i=1}^x{i \times d[i]} Sum[x]=(x+1)×i=1xi=1xi×d[i]

综上针对区间和的维护,只需要维护两个差分数组的数状数组($ d[i] 、、i*d[i]$)即可。

#唯一分解定理

一个大于1的正整数N,若其标准分解式是

N=P1a1P2a2...Pnan N=P_1^{a_1}P_2^{a_2}...P_n^{a_n} N=P1a1P2a2...Pnan

则其正因数的个数是

δ0(N)=(1+a1)(1+a2)...(1+an)​ \delta_0(N)=(1+a_1)(1+a_2)...(1+a_n) ​δ0(N)=(1+a1)(1+a2)...(1+an)

其全体正因数之和是

δ1(N)=(1+p1+p12+…p1a1)(1+p2+p22+…p2a2)...(1+pn+pn2+…pnan) \delta_1(N)=(1+p_1+p_1^2+…p_1^{a_1})(1+p_2+p_2^2+…p_2^{a_2})...(1+p_n+p_n^2+…p_n^{a_n})δ1(N)=(1+p1+p12+p1a1)(1+p2+p22+p2a2)...(1+pn+pn2+pnan)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值