树状数组
文章平均质量分 65
ZXLS-ZMR
我喜欢编程喜欢学习新的知识
展开
-
星星等级
题意:星星的等级是取决于下面,且在它的左边的的星星的个数(有多小个这样的星星就有是该星星的等级)。 每次输入的星星垂直高度是递增的。 该题的一个关键点就是处理问题的方法,要统计星星等级的个数,而高度是递增的。 所以我们只要考虑在x轴的位置,对于点的增加,我们只要更新x轴以后的点,对星星等级的 评估,转换求该点以前的点的和。把和作为星星的等级,再作为 统计数组的下标,最后只要 自加原创 2013-03-31 23:23:33 · 819 阅读 · 0 评论 -
poj-3468 线段树和树状数组的区间更新及求和
题目连接 这也算是线段树入门第一道自己完成的题目。因为在以前,看过别人写的线段树区间更新的方法,叫做延迟标记法,意思是:每次更新不需要更新到底部,换句话说:并不需要 每个元素一一更新,只有等到下次更新或被询问的时候才更新!.操作的方法就是用一个辅助数组来记录(标记)更新的信息。 我们知道线段树又叫区间树,它又是平衡二叉树。线段树的操作是用递归实现的。查找是二分搜索故时间复杂度为(logn)。原创 2013-07-30 11:06:48 · 825 阅读 · 0 评论 -
HDU-1166 敌兵布阵(树状数组和线段树)
这个题目就是对一组数据的更新和分段求和。由于数据过大,我们就会想到用树状数组。当然,先要了解它。这个题就是它的一个典型应用 #include #include int a[50005],c[50005],n;; void Add(int x,int s) { while(x<=n) { c[x]+=s; x+=(x&-x); } } int sum(int x) { int s=0原创 2013-03-31 22:36:43 · 735 阅读 · 0 评论