矩形加矩形求和
他这个的大致意思,我说一下,然后记得写一下代码
比如只考虑某个只有一个点的询问,在二维平面上查询区间
我们扫描线扫描到
假设
答案见OI-wiki即可
主要是记住这个问题静态版本的解答方法,然后没必要用线段树,用树状数组就好了
可以像蓝书那样简化,把最开始的矩阵也变成一次一次的加的操作然后放到操作序列里面
update 2024.7.19
重新做的时候,一眼二维差分,然后就要上二维树状数组,结果真的可以这么做,而且正解就是这么做
提一个细节,在树状数组的修改/查询操作中的循环里面一定要定义临时变量,比如修改,要写成
void add(int x,int y,int d,int op)
{
for(int i=x;i<=n;i+=i&-i)
for(int j=y;j<=m;j+=j&-j)
c[i][j][op]+=d;
}
而不是
void add(int x,int y,int d,int op)
{
for(;x<=n;x+=x&-x)
for(;y<=m;y+=y&-y)
c[x][y][op]+=d;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构