Hi Codeforces :D I'm looking for some problems about 3D prefix sum can you provide some links thanks a lot
# | User | Rating |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3823 |
3 | Benq | 3738 |
4 | Radewoosh | 3633 |
5 | jqdai0815 | 3620 |
6 | orzdevinwang | 3529 |
7 | ecnerwala | 3446 |
8 | Um_nik | 3396 |
9 | ksun48 | 3390 |
10 | gamegame | 3386 |
# | User | Contrib. |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 156 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
9 | nor | 153 |
Hi Codeforces :D I'm looking for some problems about 3D prefix sum can you provide some links thanks a lot
Name |
---|
After writing this comment I realized that your post was asking about problems rather than requesting a tutorial :). I hope someone will find this useful anyway.
Well, I think I could explain it right there. So, for 1D prefix sums you simply do
S[i + 1] = S[i] + a[i]
, nothing special here. For 2D, on the other side, you have to subtract overlapping region:S[i][j] = S[i - 1][j] + S[i][j - 1] - S[i - 1][j - 1] + a[i][j]
. For 3D there will be even more overlapping:S[i][j][k] = S[i - 1][j][k] + S[i][j - 1][k] + S[i][j][k - 1] - S[i - 1][j - 1][k] - S[i][j - 1][k - 1] - S[i - 1][j][k - 1] + S[i - 1][j - 1][k - 1] + a[i][j][k]
. You can find similarity with inclusion-exclusion formulas. So, with adding new dimensions it becomes more burdensome exponentially. You can check out this code:The formula for two dimensions is wrong. I think it's a typo.
The correct formula is
S[i][j] = S[i][j-1] + S[i-1][j] - S[i-1][j-1] + A[i][j]
. You wroteS[i][j+1]
instead ofS[i-1][j]
.Thanks, corrected that.
Here's a task from UVa online judge 10755 — Garbage Heap.
one from atcoder: cuboid sum query