Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión

 
Búsqueda Avanzada

15.707 Mensajes en 3.130 Temas- por 371 Usuarios - Último usuario: lasfirrot
Mayo 18, 2012, 03:58:10
Foro de Hispabyte.netProgramaciónCompeticiones de programación y algorítmicaACM UVATema: 103 Stacking Boxes
Páginas: [1]   Ir Abajo
Imprimir
Autor Tema: 103 Stacking Boxes  (Leído 1027 veces)
0 Usuarios y 1 Visitante están viendo este tema.
HQH
Administrator
Miembro Imprescindible
*****
Mensajes: 1.813



Ver Perfil
« : Agosto 15, 2006, 05:11:13 »


103 Stacking Boxes
http://acm.uva.es/p/v1/103.html

En este problema, han de caber unas cajas dentro de otras e indicar el numero maximo que caben de estas asi como que cajas concretas forman ese orden.

Este problema tiene un juez especial, asi que si hay mas de una solucion, mientras sea correcta da igual cual pongamos, el juez la valorara correctamente.

Lo primero, es una vez leida una caja, ordenar sus componentes en orden ascendente (las caracteristicas expuestas en el problema, nos permiten permutar las componentes), asi nos sera mas facil comprobar con una sola pasada y de manera lineal, si una caja cabe dentro de otra.

Una vez obtenidas todas las cajas ordenadas, hay que hacer una ordenacion topologica del conjunto de cajas, viendo cuales cajas en las componentes caben entre si o no. En el momento que una caja no cabe en una, ya es mas peque?a.
(Vamos, comprobar una a una cada componente de dos cajas, y en el momento que sean distintas, la que sea menor es mas peque?a).

Estas dos ordenaciones pueden hacerse, por ejemplo, usando la funcion qsort de C.

Asi tendremos el orden topologico. Despues solo tendremos que generar el grafo de que cajas caben en cuales , y recorrerlo con una busqueda en profundidad. Cada caja es digamos un vertice del grafo.

Al buscar, sabremos que solo podemos meternos en cajas que en el orden topologico anterior sean mayores que las nuestras, eliminando asi elementos en la busqueda en profundidad. (Digamos sabemos que la caja en orden 3, solo quizas pueda meterse en las cajas 4, 5, ...)

Debemos guardanos la profundidad asi como el vertice padre de cada vertice asignado durante la busqueda en profundidad, para luego poder reconstruir el camino.

La profundidad que alcance el vertice mas profundo sera el numero de cajas que podran meterse unas dentro de otras y el camino sera la inversa el camino de vuelta desde ese vertice susodicho.
 
« Última modificación: Agosto 15, 2006, 05:14:53 por ]_HQH_[ » En línea
Páginas: [1]   Ir Arriba
Imprimir
Foro de Hispabyte.netProgramaciónCompeticiones de programación y algorítmicaACM UVATema: 103 Stacking Boxes
Ir a:  


Tema diseñado por RJ-45 para Hispabyte.net basado en el
theme famouspadexx v.09 designed by Formado Comprido
Downloable here. My present to padexx.de