2012-10-06 23 views
5

[El problema 1000 punto de SRM 209, Div I]¿Cómo atacar este rompecabezas de mosaico?

En algún momento, el problema se reduce a lo siguiente:

bloques determinado de tres unidades cuadradas, como a continuación, que se puede girar de cualquier manera , cuántas formas hay para llenar un bloque rectangular de un tamaño dado.

| x | x | 
| x | 

Por ejemplo, para un bloque de 3x4, hay 4 formas de organizar estos bloques. Estoy buscando una forma de atacar este problema, y ​​no la solución real. ¿Cómo hago para encontrar la cantidad de formas? Hay muchas maneras en que podría suceder, y tampoco veo subproblemas superpuestos para un enfoque DP.

Cualquier idea es bienvenida.

+1

mosaico es un problema de np, por lo que la única manera sería agrupar los mosaicos en pares y probar cada combinación de los bloques 3x2 –

+1

Eso es un problema de cobertura exacto, y puede resolverlo con un BDD sin suprimir sin enumerar todo soluciones. – harold

+0

obtengo 22025514 por 8x9, ¿es correcto? – harold

Respuesta

-1

Sin excepción, cada mosaico de un bloque de espacio de pxq con mosaicos en forma de L se reducirá a mosaico con bloques de 2x3 que consisten en pares de mosaicos en forma de L. Es decir. los azulejos son ya sea en la forma:

 xx  xx 
     xy or yx to form a vertical 2x3 block or 
     yy  yy 

     xyy  xxy 
     xxy or xyy to form a horizontal 3,2 block. 

Así que ya pueden reducir el problema a una 'parquet'-alicatado de un rectángulo con 2x3 y 3x2 rectángulos. A menos que, por supuesto, esté tejiendo una región irregular no rectangular, en cuyo caso debe considerar individualmente las fichas en forma de L.

+1

Esto es incorrecto, p. '0011 | 0221 | 3324 | 3544 | 6557 | 6677'. – Nabb