Предположим, у меня есть матрица MxN, заполненная значениями от 0 до 5. Теперь я хочу определить самое большое связанное дерево в этой матрице, где значения матрицы считаются узлами.Пара узлов называется соединенной, если ее узлы расположены рядом друг с другом либо по горизонтали, либо по вертикали, и если значение обоих узлов одинаково.Размер дерева равен узлам в дереве.
Пример:
1 0 3 0 0 2 2 0 0 0 0 0
1 1 2 2 2 0 2 0 0 0 0 0
0 1 0 3 0 0 2 0 0 0 0 2
3 1 0 3 0 0 2 0 2 2 2 2
0 0 0 0 0 0 0
3 0 0 3 3 0 0
3 3 3 3 0 0 0
На левой стороне 1-узлы на левой стороне образуют наибольшее дерево.На правой стороне 3-узлы образуют самое большое дерево, в то время как есть два других дерева, состоящих из 2-х узлов.
Я знаю, что мог бы выполнить простой поиск в глубину, но мне интересноесли есть что-то общеизвестное, что я упускаю, может быть, в области теории графов (например, алгоритм минимального связующего дерева Крускала, но для этого примера).