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 | 3985 |
2 | jiangly | 3814 |
3 | jqdai0815 | 3682 |
4 | Benq | 3529 |
5 | orzdevinwang | 3526 |
6 | ksun48 | 3517 |
7 | Radewoosh | 3410 |
8 | hos.lyric | 3399 |
9 | ecnerwala | 3392 |
9 | Um_nik | 3392 |
# | User | Contrib. |
---|---|---|
1 | cry | 169 |
2 | maomao90 | 162 |
2 | Um_nik | 162 |
4 | atcoder_official | 161 |
5 | djm03178 | 158 |
6 | -is-this-fft- | 157 |
7 | adamant | 155 |
8 | awoo | 154 |
8 | Dominater069 | 154 |
10 | luogu_official | 151 |
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