<html>
<HEAD></HEAD>
<BODY>
<textarea rows="50" cols="50">
/*****************
http://www.anycodes.cn/zh/
[[树状数组]线段数]
高效:log(n)
操作:位操作
思想:二分法
百度百科之外还有以下博客
http://dongxicheng.org/structure/binary_indexed_tree/
http://blog.csdn.net/int64ago/article/details/7429868#
t3
******************/
#include <iostream>
using namespace std;
int in[]={1,2,3,4,5,6,7,8,9};int n=9;
int lowbit0(int t)
{
return t & ( t ^ ( t - 1 ) );
}
int lowbit(int x)
{
return x&-x;
}
/**************
http://jinzhi.supfree.net/
再度复习内存与位操作
如 存3 为0000 0011
-3 1111 1101
按位与 0000 0001
**************/
//求前n项和
int sum(int end)
{ int sum = 0;
while(end > 0)
{
sum += in[end];
end -= lowbit(end);
}
return sum;
}
//增加某个元素的大小
void addx(int pos, int num)
{
while(pos <= n)
{
in[pos] += num;
pos += lowbit(pos);
}
}
void show()
{
for(int i=0;i<9;i++)
cout<<in[i]<<" ";
cout<<endl;
}
int main()
{
show();
addx(2,2);
show();
cout<<sum(5);
return 0;
}
/****
对结果13还是有点疑问
***/
</textarea>
<textarea rows="50" cols="50"> </textarea>
</BODY>
</html>
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。