您的位置:首页 > 其它

周末训练笔记

2017-09-03 22:33 239 查看
由于当时家里有点事回家了,树状数组也没大看,本周又学习了一下树状数组。

看树状数组的时候看到起点的时候看课件的时候有点懵逼,当时不明白括号后面的2是什么意思就没管,然后又补了一波原码,反码,补码的知识。

原码:就是直接将十进制数转换为二进制数形式。

反码:正整数原码的反码是其自身,负整数原码的反码则是对原码真值域的个位数取反即可。

补码:正整数原码的补码是其自身,负整数原码的补码则是对原码真值域的个位数取反后,整体+1即可。

起点下标求法:lowbit(x)=x&((~x)+1)

树状数组的作用:树状数组一般用来修改某一点的值,求某个区间的和,数据规模不大的时候,对于修改某点的值是非常容易的,复杂度是O(1),但是对于求一个区间的和就要扫一遍了,复杂度是O(N),如果实时的对数组进行M次修改或求和,最坏的情况下复杂度是O(M*N),而树状数组干同样的事复杂度却是O(M*lgN),所以用树状数组可以进行优化,使代码更加简单。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: