首页 > 学院 > 开发设计 > 正文

qbxt 差值维护

2019-11-14 11:57:35
字体:
来源:转载
供稿:网友

比线段树慢但是简洁

一维差值维护

对a数组进行m次操作,每次在l~r上加不同的值,最后输出ql~qr的区间和

cha[i]=a[i]-a[i-1];//差值cha[l]+=k,cha[r+1]-=k;//差值维护//那么m次操作后a[i]=∑cha[1~i];s[i]=∑a[1~i];ans=s[r]-s[l-1];

二维差值维护

矩阵 左上角(x,y) 右下角(x2,y2)//此处需要画图帮助理解s[x][y]=s[x][y]+s[x-1][y-1]-s[x-1][y]-s[x][y-1];s[x][y]+=k; s[x][y2+1]-=k; s[x2+1][y]-=k; s[x2+1][y2+1]+=k;for (i=1; i<=n; i++) for (j=1; j<=n; j++) a[i][j]=a[i-1][j]+a[i][j-1] -a[i-1][j-1]+s[i][j];
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表