树形数组 学习之外总能发现别人更好的
<html><HEAD></HEAD><BODY> <textarearows="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>usingnamespacestd;intin[]={1,2,3,4,5,6,7,8,9};intn=9;intlowbit0(intt){returnt&(t^(t-1));}intlowbit(intx){returnx&-x;}/**************http://jinzhi.supfree.net/再度复习内存与位操作如存3为00000011-3 11111101按位与00000001**************///求前n项和intsum(intend){intsum=0;while(end>0){sum+=in[end];end-=lowbit(end);}returnsum;}//增加某个元素的大小voidaddx(intpos,intnum){while(pos<=n){in[pos]+=num;pos+=lowbit(pos);}}voidshow(){for(inti=0;i<9;i++)cout<<in[i]<<"";cout<<endl;}intmain(){show();addx(2,2);show();cout<<sum(5);return0;}/****对结果13还是有点疑问***/</textarea><textarearows="50"cols="50"></textarea> </BODY></html>
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。