随笔分类 -  树状数组

杭电 1196 Lowest Bit
摘要:#include<stdio.h>#include<string.h>#include<stdlib.h>int main(){ int t,n; while(scanf("%d",&n),n) { t=n&(-n); printf("%d\n",t); } //system("pause"); return 0;} 阅读全文
posted @ 2011-08-16 19:54 枫叶飘泪 阅读(645) 评论(0) 推荐(0)
树状数组
摘要:昨天学了一下树状数组,随笔都写了一大半,结果一个不小心就把他给删了,哎。。。。。。今天就当是复习吧!再写一次。 如果给定一个数组,要你求里面所有数的和,一般都会想到累加。但是当那个数组很大的时候,累加就显得太耗时了,时间复杂度为O(n),并且采用累加的方法还有一个局限,那就是,当修改掉数组中的元素后,仍然要你求数组中某段元素的和,就显得麻烦了。所以我们就要用到树状数组,他的时间复杂度为O(lgn),相比之下就快得多。下面就讲一下什么是树状数组: 一般讲到树状数组都会少不了下面这个图: 下面来分析一下上面那个图看能得出什么规律: 据图可知:c1=a1,c2=a1+a2,c3=a3,c4=a1+a 阅读全文
posted @ 2011-08-16 18:27 枫叶飘泪 阅读(22954) 评论(5) 推荐(6)