У меня есть двумерный массив размера P * Q, и я должен ответить на K вопросов на основе массива. Данный двумерный массив состоит из чисел 0 и 1. Для каждого вопроса мы должны подсчитать максимальный размер любого квадратного подмассива, в котором нет двух одинаковых элементов, расположенных рядом. Например, если P=Q=8 и наш данный массив
00101010
00010101
10101010
01010101
10101010
01010101
10101010
01010101
Затем вопрос Ki позволяет нам сделать Ki число переворотов (от 0 до 1 или от 1 до 0).
Here K=4(number of questions)
1 2 0 10001
Output: 7 8 6 8
Я понял, что что касается K1=1, мы можем изменить значение индекса массива (1,1) на 1 и получить допустимую матрицу размера 7 * 7, выход равен 7. Если у нас есть Ki>=2, наш ответ будет быть 8. Я думаю, что мы должны поддерживать массив ans[k], в котором хранится максимальный размер допустимой квадратной подматрицы. Для этого мы можем запустить каждый индекс исходного массива, пройтись по его подмассивам и подсчитать значение максимального размера для flip=i, если мы начнем с этого индекса. Мы должны сделать это для подмассивов, начиная с каждого индекса, а затем сохранить максимум из них в flip[i]. У меня проблемы с реализацией этого, так как я не знаю, как пройти все подмассивы для данного индекса. Я пытаюсь это так долго, но все еще не достиг этого. Кто-нибудь может помочь?