Re: задачка с acm.uva.es :)

From
Vladislav Gusev (2:5059/9.75)
To
Alexey Burdin
Date
2002-12-09T16:15:42Z
Area
RU.ALGORITHMS
                     Приветствую тебя Alexey !!!
 Было это [07 декабря 2002]. Alexey Burdin писал к All.

 AB>     Дана матрица 100х100 (ну или меньше) целых чисел от -127 до 127.
 AB>     Необходимо найти в ней такой прямоугольник, чтобы сумма всех чисел
 AB>     в нем была максимальна (из всех возможных таких прямоугольников).

 AB>     На ум (?) сразу приходит полный перебор: 1<=x1,y1<=100 , x1<=x2<=100,
 AB>     y1<=y2<=100, s=sum a[y,x] x1<=x<=x2, y1<=y<=y2.
 AB>     Для матрицы 100х100 считал на Celeron 466 аж 15 минут :)
 AB>     Хотелось бы что-нибудь более оптимальное, но влезающее в досовые 400к
 AB> :),    желательно чтобы работало на "раз-два-три".
 А ширина\высота прямоугольника дана или нет ?
 вот такой велосипед  :
 Создать массив в nxn раз меньшего исходного ,то есть как бы разбить его на
"ячейки", для каждой "ячейки" посчитать, сумму элементов исходного массива,
содержащихся  в ней. Теперь найдя прямоугольник с максимальный суммой в таком
массиве, имхо можно утверждать, что в исходном массиве его координаты лежат в
районе: cell_x1 - cell_width < x1 < cell_x1 + cell_width,и т.д
дальше небольшим перебором, можно разбиение ещё иерархическим сделать...

                                                С уважением Vlad.

--- GoldED+/386 1.1.4.5
 * Origin: End Of All Hope (2:5059/9.75)