
树状数组
树状数组
_7许
%
展开
-
求解逆序数
两行代码vector求逆序数(冒泡) 冒泡排序是保证前面冒完的泡泡是有序的~,所以说,我们可以直接利用这一点,二分找到要插入的数值应该在哪个位置,那么原位置减去当前应该在的位置就是它的逆序数 #include <iostream> #include <algorithm> #include <cstdio> #include <vector> usi...原创 2020-03-27 22:34:27 · 290 阅读 · 0 评论 -
求和
题目链接 题意:求子树结点权值和 思路:得到树的dfsdfsdfs 序,将子树操作转化为区间操作。树状数组单点更新,区间查询。 #include <bits/stdc++.h> #define lowbit(x) x & (-x) using namespace std; typedef long long ll; const int maxN = 1000006; int ...原创 2020-04-25 08:39:11 · 187 阅读 · 0 评论 -
拉普兰德的愿望【切比雪夫距离+树状数组】
题目链接 题意:给出n个点的坐标,求曼哈顿距离不小于d的点对数。 我们将坐标①(x,y)(x,y)(x,y)变换为②(x+y,x−y)(x + y, x - y)(x+y,x−y),那么①的曼哈顿距离等于②的切比雪夫距离。 切比雪夫距离dis=max(x2−x1,y2−y1)dis=max(x_2-x_1, y_2-y_1)dis=max(x2−x1,y2−y1) 那么对于点 iii 来...原创 2020-03-30 23:01:16 · 225 阅读 · 0 评论 -
【思维+树状数组_差分】Codeforces Round #595 (Div. 3)D. Too Many Segments
题意: 给n个线段,我们需要保证每个点(只考虑整数点)的重复不超过k次,让我们找出要剔除的线段,并输出这些线段的位置。 D1. Too Many Segments (easy version) 思路: 没有思路,要说思路就是暴力!(哈哈)真的是纯暴力 就是将一个线段分别以每个整数点为起点,右端点为终点,分为len个线段,都存起来。并且按照新的左端点升序,左端点相同线段长度降序排序。 然后遍历...原创 2019-10-31 17:55:26 · 145 阅读 · 0 评论 -
【树状数组】HDU 1166 敌兵布阵
HDU 1166 敌兵布阵 题意:单点修改,区间查询 思路:树状数组模板题 思考:!!比线段树写的简短得多,但是忘了初始化树状数组QAQ…… #include <iostream> #include <cstdio> #include <algorithm> #include <queue> #include <cmath> #inclu...原创 2019-07-27 20:43:53 · 139 阅读 · 0 评论 -
【树状数组】POJ 2352 Stars
POJ 2352 Stars 题意:在笛卡尔坐标系上给出星星坐标,按照y坐标升序(y坐标相等,x坐标升序)给出。规定星星的等级为其左下方的星星数量,求各等级的星星的个数。 思路:由于星星是按照y坐标升序(y坐标相等,x坐标升序)给出的,所以我们找该星星的左下的星星数量,就是当前输入该星星坐标之后getsum(x)-1,“-1”是因为要减去该星星本身。 注意:为了防止add( 0 ),所以我们每个...原创 2019-07-26 10:36:02 · 109 阅读 · 0 评论