随笔分类 -  树状数组

1003 线段树树状数组区间覆盖
摘要:算法:比赛时是对线段长度从大到小排序,一次插入查询。一直WA。赛后证明这种算法是错误的。比如1 6 5 7 6 10这组数据就无法通过。正确的算法应该是对线段的x从小到大排序,Y从大到小排序。用线段树或树状数组维护区间和都可。View Code #include<stdio.h>#include<stdlib.h>#include<string.h>#include<map>#include<iostream>#include<algorithm>#include<vector>using namespace 阅读全文

posted @ 2012-08-16 19:21 more think, more gains 阅读(318) 评论(0) 推荐(0)

HDU 4339 Query
摘要:算法:比赛时没有想到好的算法,暴力是O( Q * N )肯定超时。赛后,线段树,树状数组,HASH都能AC,想了下,的确用树状数组时间复杂度就可以优化到O(Q * lgN * lgN)2000msAC.。。View Code #include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>#include<vector>#include<string>#include<math.h>#include<map>#includ 阅读全文

posted @ 2012-08-03 22:16 more think, more gains 阅读(210) 评论(0) 推荐(0)

2月份线段树树状数组专题代码
摘要:2月份刷了树状数组和线段树专题。代码贴在博客上,方便查看。SolvedProblem IDTitleRatio(Accepted / Submitted)1001Rotate28.57%(4/14)1002Cube100.00%(2/2)1003敌兵布阵25.00%(2/8)1004See you~22.73%(5/22)1005Stars14.29%(2/14)1006Find the nondecreasing subsequences20.00%(2/10)1007Stars50.00%(2/4)1008Sort it100.00%(2/2)1009Counting Sequences1 阅读全文

posted @ 2012-07-14 11:39 more think, more gains 阅读(179) 评论(0) 推荐(0)

敌兵布阵
摘要:#include<stdio.h>#include<stdlib.h>#include<string.h>int N,c[51100];int lowbit(int x){ return x&-x;}void add(int x,int i){ while(i<=N) { c[i]+=x; i+=lowbit(i);}}int sum(int i){ int sum=0; while(i) { s... 阅读全文

posted @ 2011-05-02 15:03 more think, more gains 阅读(232) 评论(0) 推荐(0)

导航