ACM入门之【差分】
入门 ACM 差分
2023-09-11 14:15:52 时间
简言之:差分可以O(1)的给一段区间或矩阵加减相等的值
差分的分类:
- 一维差分
- 二维差分
- 树上差分
- 点差分
- 边差分
一维差分模板:
const int N=1e5+10;
int s[N];
void add(int l,int r,int c){s[l]+=c,s[r+1]-=c;}
void init(){for(int i=1;i<=n;i++) s[i]+=s[i-1];}
二维差分模板:
const int N=1010;
int s[N][N],n,m;
void add(int x,int y,int xx,int yy,int c)
{
s[x][y]+=c;
s[x][yy+1]-=c;
s[xx+1][y]-=c;
s[xx+1][yy+1]+=c;
}
void init(int n,int m)
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1];
}
相关文章
- ACM入门之【读入、输出优化】
- ACM入门之【离散化】
- ACM入门之【单调队列】
- ACM入门之【dfs序列】
- ACM入门之【欧拉序列】
- ACM入门之【线性筛】
- ACM入门之【快速幂】
- ACM入门之【DP】
- ACM入门之【TSP问题】
- Bash Heredoc 入门
- Android Jetpack架构开发,从入门到实战,看这一篇就够了
- Transform组件C#游戏开发快速入门
- 《Python入门经典》——1.2 在Windows上安装Python
- vue从入门到进阶:简介(一)
- Flet教程之 12 Stack 重叠组建图文混合 基础入门(教程含源码)
- 一天入门 Python 的一些心得
- SwiftUI一篇文章入门智能App之基于人眼识别做个替换眼神的App
- 一步到位带你入门Selenium
- openlayers4 入门开发系列之图层控制(附源码下载)
- Unity AssetBundle 从入门到掌握
- JMeter的基本介绍和入门(1)
- pipenv快速入门
- CAD入门学习技巧:CAD怎么改变线条颜色?
- 一文入门 —— go语言