ACM入门之【差分】
生活随笔
收集整理的這篇文章主要介紹了
ACM入门之【差分】
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
簡言之:差分可以O(shè)(1)的給一段區(qū)間或矩陣加減相等的值
差分的分類:
- 一維差分
- 二維差分
- 樹上差分
- 點差分
- 邊差分
一維差分模板:
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];}一維差分習(xí)題
二維差分模板:
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]; }二維差分習(xí)題
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的ACM入门之【差分】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Codeforces Beta Roun
- 下一篇: ACM入门之【ST表/RMQ】