
树状数组
Ashen_ffm
这个作者很懒,什么都没留下…
展开
-
Leetcode---315. 计算右侧小于当前元素的个数---每日一题---树状数组+离散化
315. 计算右侧小于当前元素的个数 给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。 示例: 输入: [5,2,6,1] 输出: [2,1,1,0] 解释: 5 的右侧有 2 个更小的元素 (2 和 1). 2 的右侧仅有 1 个更小的元素 (1). 6 的右侧有 1 个更小的元素 (1). 1 的右侧有 0 个更小的元素. 实现代码 class BIT { priva原创 2020-07-11 11:28:36 · 170 阅读 · 0 评论 -
Leetcode---数组中的逆序对---树状数组 + 离散化
面试题51. 数组中的逆序对 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例 1: 输入: [7,5,6,4] 输出: 5 限制: 0 <= 数组长度 <= 50000 思路 离散化 + 反向构建树状数组 实现代码 class BIT{ private: vector<int> ...原创 2020-04-24 10:01:25 · 475 阅读 · 0 评论 -
CCF---201709-5---除法---C++---树状数组 or 线段树
试题编号: 201709-5 试题名称: 除法 时间限制: 10.0s 内存限制: 256.0MB 问题描述 小葱喜欢除法,所以他给了你N个数a1, a2, ⋯, aN,并且希望你执行M次操作,每次操作可能有以下两种: 给你三个数l, r, v,你需要将al, al+1, ⋯, ar之间所有v的倍数除以v。 给你两个数l, r,你需要回答al + al+1 +...原创 2020-02-15 23:33:57 · 319 阅读 · 0 评论