分块
似火orz
哈哈哈哈哈哈哈哈哈哈
展开
-
I Hate It 分块做法
题意:有n个学生的成绩,两种操作:查询区间内的最大值;更改某个点的值分块模板题直接分块,两个数组存成绩,一个为原数组,一个为块内排序后数组,成绩按从小到大排序,碎块直接遍历原数组,整块直接用排序数组块的右边界(最大值)更改时,原位置数据为x,直接更改,排序数组中只需要更改数据大小,所以找到排序数组中大小为x的元素并将其值更改即可。代码:#include<stdio....原创 2019-12-04 20:48:43 · 249 阅读 · 0 评论 -
a simple problem with integers hdu 3468 分块
题意:有n个数,对其进行m次操作操作共有两种:区间 [l,r] 中所有的数增加k ; 查询区间[l,r] 的总和分块模板add为标记,修改时碎块不用标记,直接加在每个值上,整块标记。#include<stdio.h>#include<string.h>#include<map>#include<math.h>#incl...原创 2019-12-03 16:03:49 · 104 阅读 · 0 评论 -
Successor hdu 4366 dfs序+分块
题意:已知一棵树,求树上一节点 x 的子树中能力比x大的且拥有最大贡献值的子节点思路:首先用dfs序将树形变为线性,然后将总结点数n 分块每块有u=sqrt(n)个节点,将每个块按能力值从小到大排序ma数组记录从节点 i 到 块尾 最大贡献值的下标。查询节点时需要查询其dfs序所包含的区间区间中,如果有整块存在,则直接二分该块剩余的区间元素需要查询整块的前一个...原创 2019-11-29 20:51:40 · 122 阅读 · 0 评论