码迷,mamicode.com
首页 > 编程语言 > 详细

关于二进制&异或&树状数组的问题研究

时间:2020-06-06 09:23:47      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:bsp   异或运算   运算   进制   src   不同的   数组   dal   png   

 

 

首先,我们规定两个相邻二进制数的“差值”为对应位数不同的个数(eg:01与10的差值为2,011与100的差值为3),然后,如果我们再对相邻两个二进制数进行异或运算,它的结果将会是下面这图这样的。然后,如果我们把他们两个的值放入到树状数组中,就会发现它完美的符合树状数组的运算(差值即为树状数组中的A[i],异或后的值为C[i] )。

技术图片技术图片

 

之后,如果我们把异或后的值换成二进制的形式,将会变成下面这样。 

技术图片

 

似乎是因为每相邻两个二进制数的差值恰巧符合了树状数组的二分划分(?) 才让异或之后的值又恰巧等于了树状数组中C[i]的值?

 

感觉我对树状数组还只停留在表面,如果有dalao看到这篇文章并且明白其中的原因希望能够指教一下_(:з」∠)_

 

关于二进制&异或&树状数组的问题研究

标签:bsp   异或运算   运算   进制   src   不同的   数组   dal   png   

原文地址:https://www.cnblogs.com/blowhail/p/13053109.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!