树状数组
Altria Vin
这个作者很懒,什么都没留下…
展开
-
Codeforces 1311F Moving Points(树状数组 + 离散化 + 思维)
题目链接:https://codeforces.ml/contest/1311/problem/F 题意:在一维数轴上有n个点,每个点有一个速度,问这n个点在行驶过程中形成的最小的距离的和。 思路:啊啊啊啊啊啊!!读错题啦,卡了一天。这一题时间可以是小数!!!就是说,任意两个点,要么会在某一时刻相遇,要么永远也不会相遇,所以答案就是那些永远也不会相遇的点的起始位置差的绝对值的和。那怎么判断两个点会...原创 2020-02-26 21:10:11 · 155 阅读 · 0 评论 -
hdu 4417 Super Mario(离线树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4417 题意:给你n个数,m次查询,每次查询询问[l,r]区间内比小于等于h的数的个数。 思路:这一题看网上大部分题解都说用线段树,划分树,主席树什么的,其实这一题也可以用树状数组来求解。相当于离线树状数组。我们先将所有的查询用结构体存起来,按照h从小到大排序。并且将初始的数和其对应的下标用结构体存起来...原创 2020-02-23 20:39:44 · 139 阅读 · 0 评论 -
树状数组学习笔记
本文是笔者学完树状数组后对树状数组进行的一个学习总结,如有纰漏或者错误之处,还望读者不吝指教,不胜感激! 一、树状数组的概念: 所谓树状数组(Binary Indexed Tree),从字面意思来讲,就是用数组来模拟树形结构。也就是说它可以将线性结构转化为树形结构,从而实现跳跃式的扫描。所以它一般应用于解决动态前缀和问题。 二、树状数组一般可以解决的问题: 树状数组可以解决大部分基于区间上的更新和...原创 2020-01-18 20:06:59 · 606 阅读 · 0 评论 -
CodeForces - 652D Nested Segments(树状数组)
题目链接:https://codeforces.com/problemset/problem/652/D 题意:给你n条线段,每条线段的右端点一定不一样,问每一条线段包含几条线段。 思路:首先,我们可以把这n条线段按照左端点从小到大排序,如果左端点相同,就按照右端点从大到小排序。 如果拿第一个样例来举例的话,排序之后应该是这样的 这样,问题就转化成了对每一个直线的右端点,查找这条直线后面有多少个...原创 2019-08-19 20:04:33 · 156 阅读 · 0 评论 -
HDU - 3015 Disharmony Trees(树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3015原创 2019-09-09 21:53:22 · 176 阅读 · 0 评论 -
POJ -3321 Apple Tree(DFS序+树状数组)
题目链接:http://poj.org/problem?id=3321 题意:给你一棵初始时长满苹果的苹果树,有两种操作, (1)将一个节点的状态改变(有苹果就把这个苹果去掉,没有就加一个) (2)查询x及其子树一共有多少个苹果 思路:树上对子树的操作很麻烦,但是如果我们可以把树上操作转化为区间操作,那这一题就是一个单点更新,区间求和的题啦,那我们直接用树状数组(或者线段树)就可以直接求啦,但如何...原创 2019-09-10 11:37:03 · 164 阅读 · 0 评论 -
HDU - 2852 KiKi's K-Number(树状数组+二分)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2852 题意:给三种操作, (1)加入一个数e; (2)删除一个数,如果这个数不存在,输出No Elment! (3)查询比a大的第k个数,如果这个数不存在,输出Not Find!,否则,输出这个数 思路:前两种操作都是树状数组的单点更新,最后一个操作相当于在一个单调不减的数组里查找第k个比a大的数,所...原创 2019-09-10 16:28:13 · 131 阅读 · 0 评论