随笔分类 - 树状数组
树状数组
摘要:## [ 火柴排队](https://www.luogu.com.cn/problem/P1966) ### 一、题目描述 涵涵有两盒火柴,每盒装有 根火柴,每根火柴都有一个高度。 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相同, 两列火柴之间的距离定义为:$ \s
阅读全文
摘要:## [. 「一本通 4.1 例 3」校门外的树](https://loj.ac/p/10115) ### 一、题目描述 校门外有很多树,学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两种操作: - ,读入 表示在 $
阅读全文
摘要:## [. 「一本通 练习 」简单题](https://loj.ac/p/10117) #### 题目解析 区间修改+单点查询,用树状数组维护差分数组,从而记录每个点反转的次数。最后单点查询点反转的次数%2即为应得值。 ### ```cpp {.line
阅读全文
摘要:## [ 【模板】树状数组 1](https://www.luogu.com.cn/problem/P3374) ```cpp {.line-numbers} #include using namespace std; const int N = 5 * 1e5 + 10; int n
阅读全文
摘要:## [ 奶牛集会](https://www.luogu.org/problemnew/show/P2345) ### 一、题目描述 约翰的头奶牛每年都会参加 **哞哞大会**。哞哞大会是奶牛界的盛事。集会上的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等。它们参加活动时会聚在一
阅读全文
摘要:## [ . 最大上升子序列和](https://www.acwing.com/problem/content/description/3665/) ### 一、题目描述 给定一个长度为 的整数序列 。 请你选出一个该序列的 **严格
阅读全文
摘要:##[ . 逆序对的数量](https://www.acwing.com/problem/content/790/) ### 一、题目描述 给定一个长度为 的整数数列,请你计算数列中的逆序对的数量。 逆序对的定义如下:对于数列的第 个和第 个元素,如
阅读全文
摘要:【数据结构】二维树状数组 一、二维树状数组 二维树状数组,其实就是一维的树状数组上的节点再套个树状数组,就变成了二维树状数组了。 const int N = 1e3 + 10; int tr[N][N], n, m; #define lowbit(x) (x & -x) void add(int x
阅读全文
摘要:使用树状数组优化问题 一、与贪心+二分的方法对比 树状数组可以用来优化问题,与贪心+二分的优化方式相比 优点: 二分作法只能计算出当前序列的,而树状数组可以计算出以每一个为结尾的。(随进随查,不能算完一起来查) 学会了树状数组优化后,
阅读全文
摘要:##[ ](http://poj.org/problem?id=3067) ### 一、题目大意 两对岸,一边个点,一边个点,现在连条线,问有几个交点。 ### 二、题目解析 梳理一下这其实是一个问逆序对的问题,为什么是逆序对? 举例: ```
阅读全文
摘要:##[ ](http://poj.org/problem?id=2299) ### 一、题目描述 给一个序列,我们使用冒泡排序法对它进行排序。请输出在排序过程中会进行多少次交换,没有重复数字。 ### 二、解题思路 记录元素的大小及坐标,因为
阅读全文
摘要:##[ ](http://poj.org/problem?id=2155) ### 一、题意描述 楼教主出的题,是二维树状数组非常好的题,还结合了开关问题(开关变化的次数如果为偶数,状态不变,奇数状态相反)。 题意就是给了一个二维的坐标平面,**每个点初始值都
阅读全文
摘要:##[ ](http://acm.hdu.edu.cn/showproblem.php?pid=2852) ### 一、题目大意 给定三种操作: `0 x` 表示把`x`插入容器 ; `1 x` 表示删除一个`x`如果没有`x`则输出 `
阅读全文
摘要:##[ ](http://poj.org/problem?id=3468) ```cpp {.line-numbers} #include #include #include using name
阅读全文
摘要:## [ 【模板】线段树 1 ](https://www.luogu.com.cn/problem/P3372) ## 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1. 将某区间每一个数加上 。 2. 求出某区间每一个数的和。 ## 输入格式 第一行包含两个整数 $n
阅读全文
摘要:##[ 【模板】树状数组 ](https://www.luogu.com.cn/problem/P3368) * 知识点:**区间修改,单点查询** 通过 **差分**(就是记录数组中每个元素与前一个元素的差),可以把这个问题转化为问题 **单点修改,区间查询** #### 查询
阅读全文
摘要:##[ ](http://acm.hdu.edu.cn/showproblem.php?pid=1754) ### 一、题目描述  此题目是树状数组的模板题,没有任何技术含量,记忆吧~ ```c++ #include #include using namespace std; const int N = 50010;
阅读全文
摘要:## [ ](http://poj.org/problem?id=2352) ### 一、题目大意 给出个点坐标, 按照升序的顺序, 若相同, 则按照升序的顺序. (不用我们自己排序,是由小到大的顺序给出的坐标) 一个点坐标小于
阅读全文