二维差分
原理
紫色部分为所求区域,黄色区域为当前覆盖的区域。
$d[x1][y1] += w$ 表示将 $[x1, y1]$ 右下部分全部加上增量 $w$。
$d[x1][y2 + 1] -= w$ 用于抵消对 $y2$ 右边元素的影响,即图三蓝色区域。
$d[x2 + 1][y1] -= w$ 用于抵消对 $x2$ 下边元素的影响,即图四蓝色区域。
$d[x2 + 1][y2 + 1] += w$ 由于绿色区域被抵消了两次,因此需要加回增量 $w$。
Code
1 |
|
紫色部分为所求区域,黄色区域为当前覆盖的区域。
$d[x1][y1] += w$ 表示将 $[x1, y1]$ 右下部分全部加上增量 $w$。
$d[x1][y2 + 1] -= w$ 用于抵消对 $y2$ 右边元素的影响,即图三蓝色区域。
$d[x2 + 1][y1] -= w$ 用于抵消对 $x2$ 下边元素的影响,即图四蓝色区域。
$d[x2 + 1][y2 + 1] += w$ 由于绿色区域被抵消了两次,因此需要加回增量 $w$。
1 |
|
Update your browser to view this website correctly.&npsb;Update my browser now