Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
树状数组是有希望代替线段树的。。。至少这题是这样的。树状数组颂 树状数组,圣洁美丽, 二进制光芒照大地. 我们心中充满热情 来到你的圣殿里, 你的魔力能使人们 消除一切TLE. 在你光辉照耀下面, 人们AC成兄弟. int tree[100000]; void iniTree(){memset(tree,0,sizeof(tree));} inline int Lowbit(int a){return a&-a;} void ins(int a,int b){//若b==1,插入元素a。若b==-1,删除元素a while (a<N){ tree[a]+=b; a+=Lowbit(a+1); } } int findKth(int k){//寻找第k大的元素 int i,j; i=0; while (1){ j=0; while (i<N && tree[i]<k)i+=(j=Lowbit(i+1)); i-=j; k-=tree[i]; if (!k)break; ++i; if (Lowbit(i+1)!=1)break; } return i; } 推荐: http://www.wiskey86.cn/wordpress/?p=26 不过是用线段树写的。 Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator