Предположим, что у нас есть двумерный массив A (n X n). Все элементы матрицы А являются О или 1. Мы также имеем заданное число K. Наша задача состоит в том, чтобы найти число всех возможных «прямоугольников» в А, которые содержат элементы с общей суммой К.Как проверить суммы всех возможных прямоугольников массива
To give an example , if A =
0 0 1 0
1 0 0 1
1 1 1 1
1 0 0 1 and k=3 ,
0 0 1 0
1 0 0 1 holds the property ,
1 1 1 holds the property ,
1 1 1 holds the property ,
0 0
1 0
1 1 holds the property ,
1 1
1 0 holds the property ,
1 1
0 1 holds the property ,
1
1
1 holds the property
1
1
1 holds the property
Так если я не пропустил что-то, для этого примера ответ должен быть 8.
Другими словами, нам нужно проверить все возможные прямоугольники в A, чтобы увидеть, равна ли сумма их элементов K. Существует ли способ сделать это быстрее, чем O (n^2 * k^2)?
Не был бы наивный алгоритм проверки всех прямоугольников принимают 'O (N^4)' время? –