Полный поиск — & quot; поврежден & quot; Переполнение стека в шахматном столе

Я нахожусь в середине проблемы. Эта проблема заключается в чтении шахматной таблицы, в которой есть «жучки», и я должен представить решение, чтобы найти хорошие шахматные квадраты.

Таблица:

введите описание изображения здесь

Смысл этого упражнения — запустить все квадраты таблицы и вычислить, сколько хороших шахматных квадратов я могу найти. Тогда я должен напечатать самую большую область.

Пример ввода:

8 8
.#.###.#
#.#.##.#
.#.#..#.
.#.#.#.#
.##.#.#.
#..#.##.
...#...#
#.#.#.#.

Пример вывода:

12 (Squares can be formed) 4 (biggest area that can be formed)

Хорошие квадраты:

введите описание изображения здесь

Есть много способов сделать это, например, динамическое программирование, но я все еще новичок в этом, поэтому я использую Полный поиск, чтобы найти все эти квадраты. И мне нужна помощь с этим.

Мой код:

#include <iostream>

using namespace std;

int main()
{
int L,C,j,i;
int c;
cin >> L >> C;
char tab[L+1][C+1];
for(int a=0;a<L;a++)
for(int b=0;b<C;b++)
cin >> tab[a][b];
for(int y=0;y<=L;y++)
{
for(int x=0;x<L;x++)
{
for(int y2=y;y2<L;y2++)
{
for(int x2=x;x2<L;x2++)
{
for(int i=y;i<y2;i++)
{
for( j=x;j<x2;j++)
{
// Compare Positions
}
// If all correct, then square?
}
}
}
}
}
return 0;
}

Мое решение — O (N ^ 6), но я не уверен, что оно правильное, и я уже часами пытался найти правильный поиск для этого. Я хорошо думаю?

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]