lowbit(k)=k&-k
lowbit的作用就是取出数字k的最低位的1及后面的0
如lowbit(6)=2 —> lowbit(110)=10
原始数组为a,树状数组为c
比如说8=1000 ,因为lowbit(8)=8,所以8保存了1-8的所有内容,对于8里面最低位的1,置0后,即0XXX,这些内容都被8覆盖
现在要更新a[5],5为101,所以c[5]要更新,去掉最低位的1之后,给最低位的0进位,即101–>110(这个操作其实就是k+lowbit(k)的操作),对于110来说 他一定覆盖了101(类比8的思想),所以c[110]也要更新