随笔分类 -  数据结构------>树状数组

该文被密码保护。
posted @ 2019-09-20 22:17 悠悠呦~
摘要:<题目链接> 题目大意: 给定一个$n$个节点的无向树,并且给出这棵树的根,然后问你,对于每个节点,输出该节点的子树中节点序号小于它的节点个数。 解题分析:用DFS序将整棵树拍平,然后用树状数组维护一下这个DFS序,$in[x]$到$out[x]$之间的节点表示的就是以这个点为根的子树中的节点。按照 阅读全文
posted @ 2019-05-20 09:59 悠悠呦~
该文被密码保护。
posted @ 2019-04-07 00:14 悠悠呦~
摘要:<题目链接> 题目大意: 给你一个由1~n,n个数组成的序列,给出他们每个的前缀逆序数,现在要求输出这个序列。 解题分析: 由前缀逆序数很容易能够得到每个数的逆序数。假设当前数是i,它前面比它小的数为a[i]( i - 1 - i的逆序数即可),我们不难知道,i在前i个数中是第i+1大的。然后我们从 阅读全文
posted @ 2018-12-15 16:30 悠悠呦~
摘要:<题目链接> 题目大意: 给出一个初始值全为0的矩阵,对其进行两个操作。 1.给出一个子矩阵的左上角和右上角坐标,这两个坐标所代表的矩阵内0变成1,1变成0。 2.查询某个坐标的点的值。 解题分析: 二维树状数组单点查询经典题。首先本题可以先从一维的情况推广,假设要使区间内[L,R]中所有的数字异或 阅读全文
posted @ 2018-12-11 13:04 悠悠呦~
摘要:<题目链接> 题目大意: 给你一个H*W的矩阵,再告诉你有n个坐标有点,问你一个w*h的小矩阵最多能够包括多少个点。 解题分析:二维树状数组模板题。 2018-10-17 阅读全文
posted @ 2018-10-17 17:06 悠悠呦~
摘要:<题目链接> 题目大意: 有两个点集,这两个点集从上至下分别从1~n,1~m编号,现在给出n组数据,(x,y),表示左边点集编号为x的点与右边点集编号为y的点相连,现在要求计算这些线段的交点个数。 解题分析: 先将这些线段的x变量从小到大排序,若x相同,再将y从小到大排序。然后就可以直接遍历这些线段 阅读全文
posted @ 2018-10-17 14:55 悠悠呦~
摘要:<题目链接> 题目大意: 就是给出N个区间,问这个区间是多少个区间的真子集。 解题分析: 本题与stars类似,只要巧妙的将线段的起点和终点分别看成 二维坐标系中的x,y坐标,就会发现,其实本题就是求每个点(把线段看成点) 左上角点的个数(包括边界,但并不包括与该点坐标完全相同的点),所以,与sta 阅读全文
posted @ 2018-10-16 23:53 悠悠呦~
摘要:<题目链接> 题目大意: 一个由数字构成的大矩阵,开始是全0,能进行两种操作1) 对矩阵里的某个数加上一个整数(可正可负)2) 查询某个子矩阵里所有数字的和要求对每次查询,输出结果 解题分析: 二维树状数组模板题,需要注意的是,由于题目给的x,y坐标可以为0,所以我们应该将这些点的坐标全部+1,然后 阅读全文
posted @ 2018-10-16 22:26 悠悠呦~
摘要:<题目链接> 题目大意: 题目给出n个点,这些点按照y坐标的升序,若y相同,则按照x的升序顺序输入,问,在这些点中,左下角的点的数量分别在0~n-1的点分别有多少个,写出它们的对应点数。 解题分析: 因为所有点是按照y坐标的升序优先给出,所以后面的点y坐标一定大于等于前面的。于是,判断该点前面有多少 阅读全文
posted @ 2018-10-15 23:56 悠悠呦~
摘要:<题目链接> 题目大意: 给你一段序列,问你如果每次只交换该序列相邻的两个元素,最少需要交换多少步才能够使该序列变为升序排列。 解题分析: 不难发现,其实本题就是让我们求原始序列的逆序对,这里我们用树状数组求解。正常求解逆序数的方法无非就是按照原始序列的顺序向树状数组中加入每个元素的值,然后查询该树 阅读全文
posted @ 2018-10-14 21:15 悠悠呦~

浏览器标题切换
浏览器标题切换end