Lógica dos poliminós

3 respostas
E

Olá ,
estou fazendo um trabalho e na verdade ja estou sem ideias , eu fiz de um jeito sendo que nao atende a necessidade, meu programa tem complexidade quadratica em relacao a entrada e é pedido um em complexidade linear , eu gostaria de saber se alguem ja fez algo parecido so pra dar uma ajudada na logica , nao quero codigos pronto.

o problema é o seguinte: eu tenho uma matriz de 1s e 0s , cada 1 representa uma celula de um polimino e 0 uma celula vazia , eu preciso percorrer essa matriz e saber quantos poliminos tem e quantas celulas cada um tem.

para eu fazer em tempo linear eu preciso usar uma fila, é ai que entra minha duvida , ja passei uns 3 dias pensando e nao sai do canto , so queria saber se alguem ja fez algo parecido so pra dar uma luz ,

valeu

3 Respostas

E

Acho que para achar os poliminós você pode fazer o seguinte:

Digamos que você tenha o seguinte poliminó:

a) Criar uma matriz b[m,n] de mesma dimensão da matriz original a[m,n], mas preenchida inicialmente com o valor 0.

b) Na primeira etapa, preencher para cada elemento b[i,j] correspondente ao elemento a[i,j] o valor 1 se pelo menos um dos elementos a[i-1,j], a[i+1,j], a[i,j-1], a[i,j+1] estiver preenchido com 1.

0 1 1 0 0 0 1 1 0
1 1 0 1 1 0 1 0 0
0 0 0 0 1 0 1 0 1

c) Na segunda etapa, aí você atribui um número a cada poliminó. Você varre a matriz por linhas e colunas, mais ou menos assim:

0 1 1 0 0 0 1 1 0
1 1 0 1 1 0 1 0 0
0 0 0 0 1 0 1 0 0

0 1 1 0 0 0 1 1 0
1 1 0 1 1 0 1 0 0
0 0 0 0 1 0 1 0 0

0 1 1 0 0 0 2 2 0
1 1 0 1 1 0 2 0 0
0 0 0 0 1 0 2 0 0

0 1 1 0 0 0 1 1 0
1 1 0 3 3 0 1 0 0
0 0 0 0 3 0 1 0 0

Não sei se isso é de complexidade quadrática ou linear.

E

eu nao entendi a necessidade dessa matriz b , alem disso poliminos com somente 1 elementos tb sao contablizados.

E

Hum… não tinha visto que um poliminó pode ter apenas 1 elemento. A matriz eu tinha criado só para poder varrer e poder achar o número de poliminós distintos, já que ao varrer a tal matriz, poderíamos simplesmente incrementar se achar algo que não pertence ao poliminó em si.

Criado 13 de outubro de 2009
Ultima resposta 13 de out. de 2009
Respostas 3
Participantes 2