4456专题

HDU 4456 Crowd (cdq分治)

大意就是给出一个矩阵 初始每个位置上的值都为0 然后有两种操作 一种是更改某个位置上的值 另一个是求某个位置附近曼哈顿距离不大于K的所有位置的值的总和 网络上众多题解都是  二维树状数组 但是这题也被认为是cdq分治的基础题 下面提供两种基于cdq分治的解法 解法一: 将所有点绕原点左旋45° 然后新的坐标也很好计算 x'

hdu 4456 Crowd(二维树状数组)

题目链接:hdu 4456 Crowd 题目大意:给定N,然后M次操作 1 x y z:在x,y的位置加z2 x y z:询问与x,y曼哈顿距离小于z的点值和。 解题思路:将矩阵旋转45度,然后询问就等于是询问一个矩形,可以用容斥定理搞,维护用二维树状数组,但是空间开 不下,直接用离散化,将有用到的点处理出来。 #include <cstdio>#include <cstrin