Hi Codeforces :D I'm looking for some problems about 3D prefix sum can you provide some links thanks a lot
# | User | Rating |
---|---|---|
1 | jiangly | 3640 |
2 | Benq | 3593 |
3 | tourist | 3572 |
4 | orzdevinwang | 3561 |
5 | cnnfls_csy | 3539 |
6 | ecnerwala | 3534 |
7 | Radewoosh | 3532 |
8 | gyh20 | 3447 |
9 | Rebelz | 3409 |
10 | Geothermal | 3408 |
# | User | Contrib. |
---|---|---|
1 | maomao90 | 173 |
2 | adamant | 164 |
3 | awoo | 162 |
4 | TheScrasse | 160 |
5 | nor | 159 |
6 | maroonrk | 156 |
7 | SecondThread | 154 |
8 | pajenegod | 147 |
9 | BledDest | 145 |
9 | Um_nik | 145 |
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.