随笔分类 -  数据结构-分块

摘要:题目链接 18年沈阳网赛的题,一直想补但一直鸽着,终于还是补上了 一棵树,点带权,支持两种操作: 1.深度d上的权值加上x 2.询问子树u下的权值和 对每个深度按结点数量分类,结点数小于$sqrt(n)$的为1类,其余的为2类 对于1类深度,修改时暴力修改每个结点的值,查询时用树状数组 对于2类深度 阅读全文
posted @ 2020-03-01 21:14 jrltx 阅读(189) 评论(0) 推荐(0)
摘要:题目链接 静态区间逆序对数查询,这道题用线段树貌似不好做,可以把区间分成$\sqrt n$块,预处理出两个数组:$sum[i][j]$和$inv[i][j]$,$sum[i][j]$表示前i个块中小于等于j的数的个数,$inv[i][j]$表示第i块与第j块之间的逆序对数,递推搞一下就行。查询的时候 阅读全文
posted @ 2019-04-13 13:05 jrltx 阅读(200) 评论(0) 推荐(0)
摘要:题目链接 题意:给定n个五维空间上的点,以及m组询问,每组询问给出一个点,求五个维度都不大于它的点有多少个,强制在线。 神仙题 单独考虑每个维度,把所有点按这个维度上的大小排序,然后分成T块,每块用一个bitset记录这个块以及之前的块中包含的点的集合的前缀和,并用mx[i][j]来记录第i维上大小 阅读全文
posted @ 2019-04-08 19:39 jrltx 阅读(361) 评论(0) 推荐(0)
摘要:题目链接 本质是维护斜率递增序列。 用分块的方法就是把序列分成sqrt(n)块,每个块分别用一个vector维护递增序列。查询的时候遍历所有的块,同时维护当前最大斜率,二分找到每个块中比当前最大斜率大的那个点。修改的时候只需要修改点所在的那个块即可。复杂度$O(m\sqrt nlogn)$ 用线段树 阅读全文
posted @ 2019-04-07 13:17 jrltx 阅读(271) 评论(0) 推荐(0)