约 8 分钟
求前缀和 a[1..i],从 i 出发不断 i-=lowbit(i) 累加 c。long long sum(int i){ long long s=0; for(;i>0;i-=lowbit(i)) s+=c[i]; return s; },同样 O(log n)。
a[1..i]
i-=lowbit(i)
c
long long sum(int i){ long long s=0; for(;i>0;i-=lowbit(i)) s+=c[i]; return s; }
sum(7) 会累加哪些 c?
sum(7)
登录 后可看答案