雕刻时光

just do it……nothing impossible
随笔 - 547, 文章 - 0, 评论 - 82, 阅读 - 86万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  树状数组

摘要:http://pat.zju.edu.cn/contests/pat-a-practise/1057题目的意思是可以在一个可以任意添加于删除整数的集合里随时查找该集合的中位数每次查找用nlogn的方法显然会超时所以要一种方法接近0(N)的查找方法, ( 计算第k大的数会超时!!)比如当前有1,4,7则树状数组的sum结果会是 1,1,1,2,2,2,3现在就变成了二分查找(3+1)/2 ,即2的最左端的位置ps: 2分查找有两种形式 (有一种会出错)int find(int value)// 1,2,3 { int mid,ll=1,rr=3; while(ll#include#i... 阅读全文

posted @ 2013-09-01 11:42 huhuuu 阅读(584) 评论(0) 推荐(0) 编辑

摘要:http://ac.jobdu.com/problem.php?cid=1039&pid=19在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。先离散化在统计后面比前面大的有几个保存到all逆序对队 n*(n-1)/2-all 注意long longView Code #include<cstdio>#include<iostream>#include<algorithm>using namespace std;long long N;long long tree[200009 阅读全文

posted @ 2013-01-12 13:31 huhuuu 阅读(825) 评论(0) 推荐(0) 编辑

摘要:http://www.zybbs.org/JudgeOnline/problem.php?id=1878树状数组+离线算法因为不需要在线更新结点所以想到离线算法速度更快难点在于相同颜色的算一个,所以要灵活运用树状数组用next记录每个点后面的第一个颜色相同的点按左区间排序i:1->n不断更新updata(next[i])到了其中一个的左区间就更新最后还原排序下View Code #include<iostream>#include<algorithm>#include<cstdio>#include<string.h>using names 阅读全文

posted @ 2011-11-19 23:10 huhuuu 阅读(704) 评论(0) 推荐(0) 编辑

摘要:先按s从小到大排序若相同再按E从大到小在点相同时要特殊处理View Code #include<cstdio>#include<iostream>#include<algorithm>using namespace std;int n;int tree[200009];int all[200009];int temp[200009];struct data{ int l,r; int no;}node[200009];int lowbit(int x){ return x&(-x);}void updata(int x,int c){ int i; 阅读全文

posted @ 2011-07-16 15:53 huhuuu 阅读(189) 评论(0) 推荐(0) 编辑

摘要:题意:统计左下方的星星数容易出现TLE的情况因为0<=X,Y<=32000x=0时,因为0&(-0)=0,所以会在树状数组里出现死循环解决办法是每个x++;由于y是升序的,故不用考虑,就统计X即可View Code #include<cstdio>#include<iostream>using namespace std;int n;int tree[50009];int add[50009];int a[50009];int lowbit(int x){ return x&(-x);}void updata(int x,int c){ in 阅读全文

posted @ 2011-07-15 17:01 huhuuu 阅读(172) 评论(0) 推荐(0) 编辑

摘要:由于点范围比较大所以用离散化一下点如2 1 3n=3然后,在树状数组里放依次放入updata(2,1),统计sum(n)-sum(1),updata(1,1),统计sum(n)-sum(3)View Code 阅读全文

posted @ 2011-07-15 15:40 huhuuu 阅读(129) 评论(0) 推荐(0) 编辑

摘要:离散化,对区间离散化31 101 36 10染色3会变成1 41 23 4染色2所以要区间*22 82 46 8染色3错的,却AC的代码View Code对的代码,虽然被烂数据判错View Code 阅读全文

posted @ 2011-07-15 09:53 huhuuu 阅读(145) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示