История изменений
Исправление Waterlaz, (текущая версия) :
теперь нарисуй мне ПРОВЕРКУ того, что оно действительно помещается. А то мне этот момент не совсем ясен в твоём коде. Если я все числа ЗНАЮ, то зачем вообще заставлять компьютер считать? А если не все, то какие именно я НЕ знаю? И как получилось, что я, не зная результат, знаю, что он куда-то влезает?
Вот так и палятся люди, которые ничего не пишут, а только теоретизируют.
Типичная подзадача, возникающая просто на кажждом ходу, например, в обработке изображений:
Есть массив неотрицательных чисел a[n][m]. Необходимо периодически вычислять суммы этих чисел на прямоугольниках:
s(n1, n2, m1, m2) = \sum_{n1<=k<=n2, m1<=j<=m2}a[k][j]
Решение: предварительно вычисляем числа S(x, y) = s(0, x, 0, y)
тогда s(n1, n2, m1, m2) = S(n2, m2)+S(n1, m1)-S(n1, m2)-S(n2, m1)
Как правило, нам нужны суммы прямоугольников небольших площадей(скажем, 10х10), которые вполне помещаются в наш беззнаковый тип. При этом числа S(x, y) могут быть очень большими и не влазить
Исправление Waterlaz, :
теперь нарисуй мне ПРОВЕРКУ того, что оно действительно помещается. А то мне этот момент не совсем ясен в твоём коде. Если я все числа ЗНАЮ, то зачем вообще заставлять компьютер считать? А если не все, то какие именно я НЕ знаю? И как получилось, что я, не зная результат, знаю, что он куда-то влезает?
Вот так и палятся люди, которые ничего не пишут, а только теоретизируют.
Типичная подзадача, возникающая просто на кажждом ходу, например, в обработке изображений:
Есть массив неотрицательных чисел a[n][m]. Необходимо периодически вычислять суммы этих чисел на прямоугольниках:
s(n1, n2, m1, m2) = \sum_{n1<=i<=n2, m1<=j<=m2}a[i][j]
[\code]
Решение: предварительно вычисляем числа S(x, y) = s(0, x, 0, y)
тогда s(n1, n2, m1, m2) = S(n2, m2)+S(n1, m1)-S(n1, m2)-S(n2, m1)
[\code]
Как правило, нам нужны суммы прямоугольников небольших площадей(скажем, 10х10), которые вполне помещаются в наш беззнаковый тип.
При этом числа S(x, y) могут быть очень большими и не влазить
Исправление Waterlaz, :
теперь нарисуй мне ПРОВЕРКУ того, что оно действительно помещается. А то мне этот момент не совсем ясен в твоём коде. Если я все числа ЗНАЮ, то зачем вообще заставлять компьютер считать? А если не все, то какие именно я НЕ знаю? И как получилось, что я, не зная результат, знаю, что он куда-то влезает?
Вот так и палятся люди, которые ничего не пишут, а только теоретизируют.
Типичная подзадача, возникающая просто на кажждом ходу, например, в обработке изображений:
Есть массив неотрицательных чисел a[n][m]. Необходимо периодически вычислять суммы этих чисел на прямоугольниках:
s(n1, n2, m1, m2) = \sum_{n1<=i<=n2, m1<=j<=m2}a[i][j]
[\code]
Решение: предварительно вычисляем числа S(x, y) = s(0, x, 0, y)
тогда s(n1, n2, m1, m2) = S(n2, m2)+S(n1, m1)-S(n1, m2)-S(n2, m1)
[\code]
Как правило, нам нужны суммы прямоугольников небольших площадей(скажем, 10х10), которые вполне помещаются в наш беззнаковый тип.
При этом числа S(x, y) могут быть очень большими и не влазить
Исходная версия Waterlaz, :
теперь нарисуй мне ПРОВЕРКУ того, что оно действительно помещается. А то мне этот момент не совсем ясен в твоём коде. Если я все числа ЗНАЮ, то зачем вообще заставлять компьютер считать? А если не все, то какие именно я НЕ знаю? И как получилось, что я, не зная результат, знаю, что он куда-то влезает?
Вот так и палятся люди, которые ничего не пишут, а только теоретизируют.
Типичная подзадача, возникающая просто на кажждом ходу, например, в обработке изображений:
Есть массив неотрицательных чисел a[n][m]. Необходимо периодически вычислять суммы этих чисел на прямоугольниках:
s(n1, n2, m1, m2) = \sum_{n1<=i<=n2, m1<=k<=m2}a[j]
Решение: предварительно вычисляем числа S(x, y) = s(0, x, 0, y)
тогда s(n1, n2, m1, m2) = S(n2, m2)+S(n1, m1)-S(n1, m2)-S(n2, m1)
Как правило, нам нужны суммы прямоугольников небольших площадей(скажем, 10х10), которые вполне помещаются в наш беззнаковый тип. При этом числа S(x, y) могут быть очень большими и не влазить