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

浙公网安备 33010602011771号