PKU 2352 Stars(裸一维树状数组)】的更多相关文章

题目大意:原题链接 就是求每个小星星左小角的星星的个数.坐标按照Y升序,Y相同X升序的顺序给出由于y轴已经排好序,可以按照x坐标建立一维树状数组 关键是要理解树状数组中的c[maxn]数组的构成方式,例如c1=a1,c2=c1+a2,c3=a3,c4=c2+c3+a4,c5=a5, c6=c5+a6,c7=a7,c8=c4+c6+c7+a8...... (可以发现当c[maxn]数组的下标为2的幂次方时,c[n]则为数组a[maxn]的前n项和) 具体请看树状数组的构成图 Sum(int i)表…
题目:http://poj.org/problem?id=3321 题意: 苹果树上n个分叉,Q是询问,C是改变状态.... 开始的处理比较难,参考了一下大神的思路,构图成邻接表 并 用DFS编号 白书上一维树状数组模板: int lowbit(int x) { return x&(-x); } void add(int x,int d) //c[]的下标要从 1开始. { while(x <= n) { c[x] += d; x +=lowbit(x); } } int sum(int x…
半个月时间最终把那些杂七杂八的学完了,尽管学完也,也仅仅是有了个模板,自己手敲还是不太行.所以如今開始要疯狂刷题了! ! .!!! 这题裸的树状数组.曾经写那道<敌兵布阵>的时候写过,所以写得还挺快的吧. #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> #include <deque> #include <vector>…
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<string.h> using namespace std; #define BITMAX 50001 //数组大小 typedef int valueType; //元素类型定义 valueType BITree[BITMAX]; //一维树状数组,初始化 /* 2^k k表示节点编号 x 二进制末尾 0 的个数 */ inline int lowbit(int…
中文题,题意就不说了 一开始接触树状数组时,只知道“单点更新,区间求和”的功能,没想到还有“区间更新,单点查询”的作用. 树状数组有两种用途(以一维树状数组举例): 1.单点更新,区间查询(即求和) 单点更新时,是往树根(即c[n])拓展 而区间查询时,是往叶子节点(即c[1])拓展 2.区间更新,单点查询 区间更新时,是往叶子节点(即c[1])拓展 单点查询时,往树根(即c[n])拓展 这两个操作只不过是在update()和sum()方法中的+和-替换一下而已. 思路: 一维树状数组区间更新,…
树状数组,学长很早之前讲过,最近才重视起来,enmmmm... 树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构.主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值:经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只能查询其中一个元素的值(如果加入多个辅助数组则可以实现区间修改与区间查询). 树状数组和线段树很像,但能用树状数组解决的问题,基本上都能用线段树解决,而线段树能…
Stars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6993    Accepted Submission(s): 2754 Problem Description Astronomers often examine star maps where stars are represented by points on a plan…
题目大意:略 题目传送门 四维偏序板子题 把插入操作和询问操作抽象成$(x,y,z,t)$这样的四元组 询问操作拆分成八个询问容斥 此外$x,y,z$可能很大,需要离散 直接处理四维偏序很困难,考虑降维 而$t$这一维有一个神奇的性质,任意两个四元组的$t$互不相同,是最好处理的,所以尽量保证$t$这一维也出现在降维之后的$cdq$分治里 外层把所有四元组按$x$排序,回溯按$t$排序 现在要处理左区间对右区间的影响了,把左区间里的所有四元组打上$0$标记,右区间里的所有四元组打上$1$标记 只…
<题目链接> 题目大意: 题目给出n个点,这些点按照y坐标的升序,若y相同,则按照x的升序顺序输入,问,在这些点中,左下角的点的数量分别在0~n-1的点分别有多少个,写出它们的对应点数.  解题分析: 因为所有点是按照y坐标的升序优先给出,所以后面的点y坐标一定大于等于前面的.于是,判断该点前面有多少点满足在该点的“左下角”,只需看前面的点有几个x坐标小于当前点即可,所以,我们只需要对x坐标建一维树状数组即可求解. #include <cstdio> #include <cs…
Stars Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 39186 Accepted: 17027 Description Astronomers often examine star maps where stars are represented by points on a plane and each star has Cartesian coordinates. Let the level of a star b…