adabyron 2016 - esbozo de las solucionesada-byron.es/2016/ada2016-soloutlines.pdf · a-...

131
AdaByron 2016 Estadísticas y Soluciones Los jueces (UCM) AdaByron 2016 1 / 62

Upload: others

Post on 15-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

AdaByron 2016

Estadísticas y Soluciones

Los jueces (UCM) AdaByron 2016 1 / 62

Page 2: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Clasificación

Clasificación de los problemas

Problema CategoríaA - La máquina calculadora Grafos, búsqueda en anchuraB - Palmeras en la nieve Iteración, segmento de longitud máximaC - Double decker ExpresionesD - Tiro al patíndromo Programación dinámica, cadenasE - El conteo de la rosa Divide y vencerásF - El teorema del punto fijo Permutaciones, m.c.m.G - Helados de cucurucho RecursiónH - La ardilla viajera Grafos, conjuntos disjuntosI - El acertijo del mercader Vuelta atrásJ - La comida de los pollitos Matrices, iteraciónK - ¡En primera línea de playa! Algoritmos voraces, ordenaciónL - Teclas del piano Arrays, cadenas

Los jueces (UCM) AdaByron 2016 2 / 62

Page 3: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Estadísticas

Estadísticas

Problema # casos de prueba Espacio en discoA - La máquina calculadora 28.013 280 KBB - Palmeras en la nieve 17.391 6 MBC - Double decker 13.805 168 KBD - Tiro al patíndromo 38.339 831 KBE - El conteo de la rosa 110.107 1,9 MBF - El teorema del punto fijo 26.038 3,1 MBG - Helados de cucurucho 99 235 KBH - La ardilla viajera 1.005 2,9 MBI - El acertijo del mercader 1.817 24 KBJ - La comida de los pollitos 1.485 417 KBK - ¡En primera línea de playa! 38.119 7 MBL - Teclas del piano 2.413 4,5 MB

Los jueces (UCM) AdaByron 2016 3 / 62

Page 4: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Estadísticas

Estadísticas

Problema Primer equipo en resolverlo TiempoA - La máquina calculadora Sombrero 7B - Palmeras en la nieve Sombrero 52C - Double decker UAM2 13D - Tiro al patíndromo “ OR 1=1 LIMIT 1 – 231E - El conteo de la rosa Sombrero 97F - El teorema del punto fijo “ OR 1=1 LIMIT 1 – 32G - Helados de cucurucho Sombrero 23H - La ardilla viajera - -I - El acertijo del mercader - -J - La comida de los pollitos UAM1 161K - ¡En primera línea de playa! Sombrero 84L - Teclas del piano UAM1 24

Los jueces (UCM) AdaByron 2016 4 / 62

Page 5: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Estadísticas

Estadísticas

Problema Envíos Válidos % éxitoA - La máquina calculadora 25 5 20%B - Palmeras en la nieve 71 14 19%C - Double decker 59 36 61%D - Tiro al patíndromo 6 2 33%E - El conteo de la rosa 33 4 12%F - El teorema del punto fijo 34 7 20%G - Helados de cucurucho 44 18 40%H - La ardilla viajera 3 0 0%I - El acertijo del mercader 3 0 0%J - La comida de los pollitos 4 3 75%K - ¡En primera línea de playa! 11 5 45%L - Teclas del piano 41 11 26%

Los jueces (UCM) AdaByron 2016 5 / 62

Page 6: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Estadísticas

Estadísticas

Jueces ParticipantesProblema LOC LOCNC LOC LOCNCA - La máquina calculadora 101.66 51.66 69.40 61.00B - Palmeras en la nieve 109.33 51.83 60.92 48.64C - Double decker 51.00 24.14 31.19 22.83D - Tiro al patíndromo 120.28 73.85 89.00 64.00E - El conteo de la rosa 110.20 58.80 67.00 55.00F - El teorema del punto fijo 102.00 53.28 68.00 57.71G - Helados de cucurucho 66.20 35.40 66.83 55.88H - La ardilla viajera 204.80 112.40 - -I - El acertijo del mercader 176.20 57.00 - -J - La comida de los pollitos 136.75 96.50 105.66 95.33K - ¡En primera línea de playa! 81.00 46.75 61.80 47.00L - Teclas del piano 138.25 81.75 105.18 92.36- Total 1397.67 743,36

Los jueces (UCM) AdaByron 2016 6 / 62

Page 7: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

A. La máquina calculadora

Envíos Válidos % éxito25 5 20%

Los jueces (UCM) AdaByron 2016 7 / 62

Page 8: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

A. La máquina calculadora

A partir de una configuración de la máquina

queremos llegar a un número deseado con el menor número de pulsaciones.

Podemos modelar el problema con un grafo (implícito) donde los vértices sonlos números y los adyacentes son los números obtenibles con cualquiera de lastres operaciones.

Los jueces (UCM) AdaByron 2016 8 / 62

Page 9: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

A. La máquina calculadora

1485

1486

1487

+1

2972

*2

+1

2970

2971

+1

5940

*2

990

÷3

*2

495

496

+1

165

÷3

÷3

÷3

*2

Un recorrido en anchura del grafo encontrará el camino más corto desde elnúmero origen al número destino.

Llevamos cuenta de la distancia (número de pulsaciones) a cada vértice, laprimera vez que se llega a él.

Los jueces (UCM) AdaByron 2016 9 / 62

Page 10: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

B. Palmeras en la nieve

Envíos Válidos % éxito71 14 19%

Los jueces (UCM) AdaByron 2016 10 / 62

Page 11: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

B. Palmeras en la nieve

Es un problema de cálculo del segmento más largo de un vector que cumpleuna determinada propiedad, en este caso que el número de palmeras quequedan en pie sea menor o igual a 5.Recorremos el vector en uno de los dos sentidos, por ejemplo de izquierda aderecha, y llevamos guardada:

1 La longitud l del segmento más largo hasta el momento.

2 Para el segmento actual, que acaba en la posición i que estamosconsiderando: el extremo s de comienzo del segmento y el número depalmeras en pie en dicho segmento.

l︷ ︸︸ ︷ s isegmento más largo . . . . . .︸ ︷︷ ︸

s. actual

Los jueces (UCM) AdaByron 2016 11 / 62

Page 12: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

B. Palmeras en la nieve

Pueden suceder tres cosas con la nueva posición a considerar:

• Si la palmera que allí se encuentra cae por el peso de la nieve, la longituddel segmento actual crece en 1 y si dicha longitud es mayor que la mejorhasta el momento se actualiza.

l︷ ︸︸ ︷ s isegmento más largo . . . . . . cae︸ ︷︷ ︸

i+1−s

• Si la palmera no cae y aún no se han sobrepasado las 5 palmeras en elsegmento, simplemente se incrementa el número de palmeras, y seprocede como en el caso anterior.

Los jueces (UCM) AdaByron 2016 12 / 62

Page 13: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

B. Palmeras en la nieve

• Si la palmera no cae y con esta nueva palmera ya son 6 las palmeras enpie en el segmento, se avanza el extremo izquierdo del segmento hastarebasar la primera palmera en pie de dicho segmento, de forma que elnuevo segmento a considerar (con 5 palmeras) es el que excluye la queantes era la primera palmera e incluye la nueva palmera.

s −→ −→ s i. . . cae . . . cae . . . en pie . . . en pie︸ ︷︷ ︸

i+1−s

El coste de este algoritmo es lineal con el número de palmeras, ya que cadapalmera se considera a lo sumo dos veces: la primera vez para comprobar sicae o no y la segunda en caso de que haya que avanzar el extremo izquierdodel segmento al que pertenece. En este segundo caso, una vez sobrepasado,ya no se vuelve a considerar.

Los jueces (UCM) AdaByron 2016 13 / 62

Page 14: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

C. Double decker

Envíos Válidos % éxito59 36 61%

Los jueces (UCM) AdaByron 2016 14 / 62

Page 15: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

C. Double decker

Queremos conocer el rango de un autobús conociendo el número de personasen cada piso.

Los jueces (UCM) AdaByron 2016 15 / 62

Page 16: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

C. Double decker

Idea 1

• El número total de personas en el autobús define la fila en la que está elautobús (contando desde la fila 0).

Ejemplo: los autobuses 12 (rango 8) y 3

0 (rango 10) están en la fila 3.

Los jueces (UCM) AdaByron 2016 16 / 62

Page 17: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

C. Double decker

Idea 2

• Para una fila K, el rango de su primer autobús 0K será el número de

autobuses en las filas anteriores más uno:

1 +K−1

∑i=0

(i + 1) = 1 +K

∑i=1

i = 1 +(K + 1)K

2

Rango del 1er autobús de la fila 3: 1 + ∑3i=1 i = 1 + 4×3

2 = 1 + 6 = 7

Los jueces (UCM) AdaByron 2016 17 / 62

Page 18: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

C. Double decker

Idea 3

• El número de personas en el piso superior indica el desplazamiento delautobús en su fila.

Ejemplo: el autobús 12 (rango 8) tiene un desplazamiento de 1, y el autobús 3

0(rango 10) un desplazamiento de 3.

Los jueces (UCM) AdaByron 2016 18 / 62

Page 19: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

C. Double decker

Juntando todo

• El rango del autobús NM se calcula como:

1 +N+M

∑i=1

i︸ ︷︷ ︸1er autobús en fila N+M

+

desplazamiento en fila N+M︷︸︸︷N

El rango del autobús 30 es (1 + ∑3

i=1 i) + 3 = 7 + 3 = 10

Los jueces (UCM) AdaByron 2016 19 / 62

Page 20: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

D. Tiro al patíndromo

Envíos Válidos % éxito6 2 33%

Los jueces (UCM) AdaByron 2016 20 / 62

Page 21: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

D. Tiro al patíndromo

1 2 3 4 5 6 7 8 9 10

M E R O D E A D O R

Conseguir el palíndromo más largo tirando (si es necesario) algunos de lospatitos:

1 2 3 4 5 6 7 8 9 10

R O D A D O R

Los jueces (UCM) AdaByron 2016 21 / 62

Page 22: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

D. Tiro al patíndromo

Si los patitos de los extremos coinciden

R O D E A D O R

lo mejor es seleccionarlos y buscar el mejor palíndromo con el resto de patitos:

R O D E A D O R︸ ︷︷ ︸O D A D O

Los jueces (UCM) AdaByron 2016 22 / 62

Page 23: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

D. Tiro al patíndromo

Si los patitos de los extremos coinciden

R O D E A D O R

lo mejor es seleccionarlos y buscar el mejor palíndromo con el resto de patitos:

R O D E A D O R︸ ︷︷ ︸O D A D O

Los jueces (UCM) AdaByron 2016 22 / 62

Page 24: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

D. Tiro al patíndromo

Si los patitos de los extremos no coinciden, entonces habrá que quitar almenos uno de ellos, buscar recursivamente en cada opción, y quedarse con lamejor:

M E R O D E A D O R

︸ ︷︷ ︸R O D A D O R

︸ ︷︷ ︸O D A D O

R O D A D O R

Los jueces (UCM) AdaByron 2016 23 / 62

Page 25: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

D. Tiro al patíndromo

Si los patitos de los extremos no coinciden, entonces habrá que quitar almenos uno de ellos, buscar recursivamente en cada opción, y quedarse con lamejor:

M E R O D E A D O R

︸ ︷︷ ︸R O D A D O R

︸ ︷︷ ︸O D A D O

R O D A D O R

Los jueces (UCM) AdaByron 2016 23 / 62

Page 26: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

D. Tiro al patíndromo

Si los patitos de los extremos no coinciden, entonces habrá que quitar almenos uno de ellos, buscar recursivamente en cada opción, y quedarse con lamejor:

M E R O D E A D O R

︸ ︷︷ ︸R O D A D O R

︸ ︷︷ ︸O D A D O

R O D A D O R

Los jueces (UCM) AdaByron 2016 23 / 62

Page 27: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

D. Tiro al patíndromo

Si los patitos de los extremos no coinciden, entonces habrá que quitar almenos uno de ellos, buscar recursivamente en cada opción, y quedarse con lamejor:

M E R O D E A D O R

︸ ︷︷ ︸R O D A D O R

︸ ︷︷ ︸O D A D O

R O D A D O R

Los jueces (UCM) AdaByron 2016 23 / 62

Page 28: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

D. Tiro al patíndromo

Definición recursiva (i < j):

patindromo(i, j) =

patindromo(i + 1, j− 1) + 2

si patito[i] = patito[j]

máx{patindromo(i + 1, j), patindromo(i, j− 1)}si patito[i] 6= patito[j]

Casos básicos:patindromo(i, i) = 1patindromo(i, j) = 0 si i > j

Calcular los valores de esta función utilizando programación dinámica. Utilizarla tabla rellena para reconstruir la solución.

Los jueces (UCM) AdaByron 2016 24 / 62

Page 29: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

E. El conteo de la rosa

Envíos Válidos % éxito33 4 12%

Los jueces (UCM) AdaByron 2016 25 / 62

Page 30: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

E. El conteo de la rosa

Tenemos que numerar, entre dos personas, las páginas de un libro desde la ahasta la b.

Queremos hacer un reparto justo en número de dígitos a escribir.

Necesitamos:

1 Averiguar la cantidad de dígitos que contienen todos los números entre ay b

2 Encontrar el punto medio

Los jueces (UCM) AdaByron 2016 26 / 62

Page 31: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

E. El conteo de la rosa

Tenemos que numerar, entre dos personas, las páginas de un libro desde la ahasta la b.

Queremos hacer un reparto justo en número de dígitos a escribir.

Necesitamos:

1 Averiguar la cantidad de dígitos que contienen todos los números entre ay b

2 Encontrar el punto medio

Los jueces (UCM) AdaByron 2016 26 / 62

Page 32: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

E. El conteo de la rosa

Tenemos que numerar, entre dos personas, las páginas de un libro desde la ahasta la b.

Queremos hacer un reparto justo en número de dígitos a escribir.

Necesitamos:

1 Averiguar la cantidad de dígitos que contienen todos los números entre ay b

2 Encontrar el punto medio

Los jueces (UCM) AdaByron 2016 26 / 62

Page 33: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

E. El conteo de la rosaCantidad de dígitos que contienen todos los números entre a y b

Contar cuántos dígitos tiene un número es fácil (divisiones sucesivas,secuencia de if’s o logaritmo en base 10).

Se puede contar la cantidad de dígitos de un rango de números con un bucle:O(b− a)

¡Lento!No se aprovecha la coherencia: todos los números entre 100.000 y 999.999tienen el mismo número de dígitos.

Se necesita una implementación más eficiente basada en el número de dígitosde los extremos: O(n log10 n)

Los jueces (UCM) AdaByron 2016 27 / 62

Page 34: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

E. El conteo de la rosaCantidad de dígitos que contienen todos los números entre a y b

Contar cuántos dígitos tiene un número es fácil (divisiones sucesivas,secuencia de if’s o logaritmo en base 10).

Se puede contar la cantidad de dígitos de un rango de números con un bucle:O(b− a)

¡Lento!No se aprovecha la coherencia: todos los números entre 100.000 y 999.999tienen el mismo número de dígitos.

Se necesita una implementación más eficiente basada en el número de dígitosde los extremos: O(n log10 n)

Los jueces (UCM) AdaByron 2016 27 / 62

Page 35: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

E. El conteo de la rosaCantidad de dígitos que contienen todos los números entre a y b

Contar cuántos dígitos tiene un número es fácil (divisiones sucesivas,secuencia de if’s o logaritmo en base 10).

Se puede contar la cantidad de dígitos de un rango de números con un bucle:O(b− a)

¡Lento!No se aprovecha la coherencia: todos los números entre 100.000 y 999.999tienen el mismo número de dígitos.

Se necesita una implementación más eficiente basada en el número de dígitosde los extremos: O(n log10 n)

Los jueces (UCM) AdaByron 2016 27 / 62

Page 36: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

E. El conteo de la rosaCantidad de dígitos que contienen todos los números entre a y b

Aprovechar la “coherencia espacial” es tedioso en rangos arbitrarios. Esmucho más fácil si el rango empieza en 1.Averiguar la cantidad en cualquier otro rango es cuestión de restar:

1 a bCantidad dígitos [1, i] . . . . . .

[a, b] = [1, b]− [1, a− 1]

Esto es más ineficiente que calcular el rango de una vez, pero sólo por unaconstante multiplicativa.

Los jueces (UCM) AdaByron 2016 28 / 62

Page 37: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

E. El conteo de la rosaCantidad de dígitos que contienen todos los números entre a y b

Aprovechar la “coherencia espacial” es tedioso en rangos arbitrarios. Esmucho más fácil si el rango empieza en 1.Averiguar la cantidad en cualquier otro rango es cuestión de restar:

1 a bCantidad dígitos [1, i] . . . . . .

[a, b] = [1, b]− [1, a− 1]

Esto es más ineficiente que calcular el rango de una vez, pero sólo por unaconstante multiplicativa.

Los jueces (UCM) AdaByron 2016 28 / 62

Page 38: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

E. El conteo de la rosaEncontrar el punto medio

Una vez que sabemos la cantidad de dígitos, calculamos cuántos tienen queescribir cada monje, y buscamos el número de página i que lo consigue.Podemos ir buscando la posición, calculando la cantidad de dígitos para elrango [a, i]: O(b− a)

¡Lento!El rango es demasiado grande para hacer una búsqueda lineal.

Los jueces (UCM) AdaByron 2016 29 / 62

Page 39: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

E. El conteo de la rosaEncontrar el punto medio

Una vez que sabemos la cantidad de dígitos, calculamos cuántos tienen queescribir cada monje, y buscamos el número de página i que lo consigue.Podemos ir buscando la posición, calculando la cantidad de dígitos para elrango [a, i]: O(b− a)

¡Lento!El rango es demasiado grande para hacer una búsqueda lineal.

Los jueces (UCM) AdaByron 2016 29 / 62

Page 40: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

E. El conteo de la rosaEncontrar el punto medio

El número de páginas que tiene que escribir el primer monje es creciente conel valor de i.

i 97 98 99 100 101 102 103Cantidad dígitos [97, i] 2 4 6 9 12 15 . . .

¡Solución!Búsqueda binaria sobre una secuencia implícita.Cuidando si el número buscado no “está”

Los jueces (UCM) AdaByron 2016 30 / 62

Page 41: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

E. El conteo de la rosaEncontrar el punto medio

El número de páginas que tiene que escribir el primer monje es creciente conel valor de i.

i 97 98 99 100 101 102 103Cantidad dígitos [97, i] 2 4 6 9 12 15 . . .

¡Solución!Búsqueda binaria sobre una secuencia implícita.Cuidando si el número buscado no “está”

Los jueces (UCM) AdaByron 2016 30 / 62

Page 42: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

E. El conteo de la rosa

Como participante, este problema se comprueba solo. Tras calcular lasolución, puedes comprobar si es la posición óptima.

¡¡No debería haber habido WRONG ANSWER!!

Los jueces (UCM) AdaByron 2016 31 / 62

Page 43: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

F. El teorema del punto fijo

Envíos Válidos % éxito34 7 20%

Los jueces (UCM) AdaByron 2016 32 / 62

Page 44: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

F. El teorema del punto fijo

1 2 3

3 1 2

2 3 1

1 2 3

Primer movimiento

Segundo movimiento

Tercer movimiento

Los jueces (UCM) AdaByron 2016 33 / 62

Page 45: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

F. El teorema del punto fijo

1 2 3 4 5

3 1 2 5 4

2 3 1 4 5

1 2 3 5 4

Primer movimiento

Segundo movimiento

Tercer movimiento

Los jueces (UCM) AdaByron 2016 34 / 62

Page 46: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

F. El teorema del punto fijo

1 2 3 4 5 6 7 8 9

3 1 2 5 4 7 8 9 6

2 3 1 4 5 8 9 6 7

1 2 3 5 4 9 6 7 8

Primer movimiento

Segundo movimiento

Tercer movimiento

Los jueces (UCM) AdaByron 2016 35 / 62

Page 47: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Solución: Sacar la longitud de los ciclos de la permutación.

Calcular el mínimo común múltiplo de todas ellas.

Para hacerlo, se puede calcular con el MCD

Ojo: Cuidado con los desbordamientos.

Los jueces (UCM) AdaByron 2016 36 / 62

Page 48: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Solución: Sacar la longitud de los ciclos de la permutación.

Calcular el mínimo común múltiplo de todas ellas.

Para hacerlo, se puede calcular con el MCD

Ojo: Cuidado con los desbordamientos.

Los jueces (UCM) AdaByron 2016 36 / 62

Page 49: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Solución: Sacar la longitud de los ciclos de la permutación.

Calcular el mínimo común múltiplo de todas ellas.

Para hacerlo, se puede calcular con el MCD

Ojo: Cuidado con los desbordamientos.

Los jueces (UCM) AdaByron 2016 36 / 62

Page 50: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Solución: Sacar la longitud de los ciclos de la permutación.

Calcular el mínimo común múltiplo de todas ellas.

Para hacerlo, se puede calcular con el MCD

Ojo: Cuidado con los desbordamientos.

Los jueces (UCM) AdaByron 2016 36 / 62

Page 51: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

G. Helados de cucurucho

Envíos Válidos % éxito44 18 40%

Los jueces (UCM) AdaByron 2016 37 / 62

Page 52: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

G. Helados de cucurucho

Si tenemos i bolas de helado de vainilla, y j de chocolate, ¿de qué formas sepueden colocar para formar un helado de cucurucho?

Recursión

Partiendo de un helado parcialmente construído:

• Si hemos puesto ya todas las bolas de helado, escribimos la configuración.

• Si aún nos quedan bolas de vainilla, añadimos una y probamos.

• Si aún nos quedan bolas de chocolate, añadimos una y probamos.

Quizá lo más difícil fuera la gestión del último espacio. Si se añadía,PRESENTATION ERROR.

Los jueces (UCM) AdaByron 2016 38 / 62

Page 53: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

G. Helados de cucurucho

Si tenemos i bolas de helado de vainilla, y j de chocolate, ¿de qué formas sepueden colocar para formar un helado de cucurucho?

Recursión

Partiendo de un helado parcialmente construído:

• Si hemos puesto ya todas las bolas de helado, escribimos la configuración.

• Si aún nos quedan bolas de vainilla, añadimos una y probamos.

• Si aún nos quedan bolas de chocolate, añadimos una y probamos.

Quizá lo más difícil fuera la gestión del último espacio. Si se añadía,PRESENTATION ERROR.

Los jueces (UCM) AdaByron 2016 38 / 62

Page 54: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

H. La ardilla viajera

Envíos Válidos % éxito3 0 0%

Los jueces (UCM) AdaByron 2016 39 / 62

Page 55: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

H. La ardilla viajera

K = 2

1

2

3

4

Los jueces (UCM) AdaByron 2016 40 / 62

Page 56: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

H. La ardilla viajera

K = 2

1

2

3

4

Los jueces (UCM) AdaByron 2016 40 / 62

Page 57: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

H. La ardilla viajera

K = 2

1

2

3

4

Los jueces (UCM) AdaByron 2016 40 / 62

Page 58: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

H. La ardilla viajera

K = 2

1

2

3

4

Los jueces (UCM) AdaByron 2016 40 / 62

Page 59: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

H. La ardilla viajera

K = 2

1

2

3

4

Los jueces (UCM) AdaByron 2016 40 / 62

Page 60: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

La solución al problema requiere dos fases:

1 Construir el grafoUna arista entre cada par de vértices cuya distancia sea ≤ K.La solución evidente es O(n2). Con 10.000 vértices, TLE

2 Utilizar el grafo para calcular la respuesta.La forma evidente de hacerlo es utilizar BFS ignorando aristas. En el peorde los casos, 10.000 ejecuciones de BFS, TLE.

Los jueces (UCM) AdaByron 2016 41 / 62

Page 61: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 42 / 62

Page 62: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 42 / 62

Page 63: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 42 / 62

Page 64: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 65: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 66: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 67: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 68: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 69: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 70: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 71: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 72: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 73: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 74: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 75: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 76: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 77: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 78: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 79: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 80: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 43 / 62

Page 81: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Opción 1El BFS es la forma de calcular la función:

f (x) = puede saltar el día x

Objetivo: Encontrar el primer n en el que f (n) == falseSolución: Búsqueda binaria sobre n

Opción 2Recorrer de derecha a izquierda utilizando UFDS

Los jueces (UCM) AdaByron 2016 44 / 62

Page 82: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

Los jueces (UCM) AdaByron 2016 45 / 62

Page 83: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

Envíos Válidos % éxito3 0 0%

Los jueces (UCM) AdaByron 2016 46 / 62

Page 84: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

¿Cuál es el menor número de peregrinos que pueden caminar en exactamented formaciones diferentes?

¿Cuál es el menor número n que tiene exactamente d divisores?

Consideraciones:

1 1 ≤ n ≤ 109

2 Sacar el número de divisores de un número i es O(sqrt(i))

Una búsqueda lineal con i desde 1 hacia arriba es demasiado lenta.

¿Búsqueda binaria?No: el número de divisores no es una función monótona.

Los jueces (UCM) AdaByron 2016 47 / 62

Page 85: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

¿Cuál es el menor número de peregrinos que pueden caminar en exactamented formaciones diferentes?

¿Cuál es el menor número n que tiene exactamente d divisores?

Consideraciones:

1 1 ≤ n ≤ 109

2 Sacar el número de divisores de un número i es O(sqrt(i))

Una búsqueda lineal con i desde 1 hacia arriba es demasiado lenta.

¿Búsqueda binaria?No: el número de divisores no es una función monótona.

Los jueces (UCM) AdaByron 2016 47 / 62

Page 86: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

¿Cuál es el menor número de peregrinos que pueden caminar en exactamented formaciones diferentes?

¿Cuál es el menor número n que tiene exactamente d divisores?

Consideraciones:

1 1 ≤ n ≤ 109

2 Sacar el número de divisores de un número i es O(sqrt(i))

Una búsqueda lineal con i desde 1 hacia arriba es demasiado lenta.

¿Búsqueda binaria?No: el número de divisores no es una función monótona.

Los jueces (UCM) AdaByron 2016 47 / 62

Page 87: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

¿Cuál es el menor número de peregrinos que pueden caminar en exactamented formaciones diferentes?

¿Cuál es el menor número n que tiene exactamente d divisores?

Consideraciones:

1 1 ≤ n ≤ 109

2 Sacar el número de divisores de un número i es O(sqrt(i))

Una búsqueda lineal con i desde 1 hacia arriba es demasiado lenta.

¿Búsqueda binaria?No: el número de divisores no es una función monótona.

Los jueces (UCM) AdaByron 2016 47 / 62

Page 88: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

¿Cuál es el menor número de peregrinos que pueden caminar en exactamented formaciones diferentes?

¿Cuál es el menor número n que tiene exactamente d divisores?

Consideraciones:

1 1 ≤ n ≤ 109

2 Sacar el número de divisores de un número i es O(sqrt(i))

Una búsqueda lineal con i desde 1 hacia arriba es demasiado lenta.

¿Búsqueda binaria?No: el número de divisores no es una función monótona.

Los jueces (UCM) AdaByron 2016 47 / 62

Page 89: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

¿Cuántos divisores tiene un número n?

Si la descomposición en factores primos de n es

n = Aa · Bb · . . . · Kk

el número de divisores es:

d = (a + 1) · (b + 1) · . . . · (k + 1)

Los jueces (UCM) AdaByron 2016 48 / 62

Page 90: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

¿Cuántos divisores tiene un número n?

Si la descomposición en factores primos de n es

n = Aa · Bb · . . . · Kk

el número de divisores es:

d = (a + 1) · (b + 1) · . . . · (k + 1)

Los jueces (UCM) AdaByron 2016 48 / 62

Page 91: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

Nos piden lo contrario. Dado un d (caso de prueba):

d = (a + 1) · (b + 1) · . . . · (k + 1)

encontrar el menor n tal que su desomposición sea:

n = Aa · Bb · . . . · Kk

Necesitamos sacar los divisores de d y construir el mejor n.

Ideas:

• Usar los menores primos: A = 2, B = 3, C = 5, . . .• Usar los divisores mayores de d en los primos más pequeños.

Los jueces (UCM) AdaByron 2016 49 / 62

Page 92: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

Nos piden lo contrario. Dado un d (caso de prueba):

d = (a + 1) · (b + 1) · . . . · (k + 1)

encontrar el menor n tal que su desomposición sea:

n = Aa · Bb · . . . · Kk

Necesitamos sacar los divisores de d y construir el mejor n.

Ideas:

• Usar los menores primos: A = 2, B = 3, C = 5, . . .• Usar los divisores mayores de d en los primos más pequeños.

Los jueces (UCM) AdaByron 2016 49 / 62

Page 93: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

¡CUIDADO! No sirve un algoritmo voraz.

De hecho, los divisores de d no tienen por qué ser primos.

Caso de prueba de ejemplo:

64 = 26 = 22 · 22 · 2 · 2 = (3 + 1) · (3 + 1) · (1 + 1) · (1 + 1)

7560 = 23 · 33 · 51 · 71

Los jueces (UCM) AdaByron 2016 50 / 62

Page 94: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

30.240 = 25 · 33 · 51 · 71

(5 + 1) · (3 + 1) · (1 + 1) · (1 + 1)

6 · 4 · 2 · 2 = 26 · 3 = 96 divisores

27.720 = 23 · 32 · 51 · 71 · 111

(3 + 1) · (2 + 1) · (1 + 1) · (1 + 1) · (1 + 1)

6 · 4 · 2 · 2 = 26 · 3 = 96 divisores

Los jueces (UCM) AdaByron 2016 51 / 62

Page 95: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

30.240 = 25 · 33 · 51 · 71

(5 + 1) · (3 + 1) · (1 + 1) · (1 + 1)

6 · 4 · 2 · 2 = 26 · 3 = 96 divisores

27.720 = 23 · 32 · 51 · 71 · 111

(3 + 1) · (2 + 1) · (1 + 1) · (1 + 1) · (1 + 1)

6 · 4 · 2 · 2 = 26 · 3 = 96 divisores

Los jueces (UCM) AdaByron 2016 51 / 62

Page 96: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

30.240 = 25 · 33 · 51 · 71

(5 + 1) · (3 + 1) · (1 + 1) · (1 + 1)

6 · 4 · 2 · 2 = 26 · 3 = 96 divisores

27.720 = 23 · 32 · 51 · 71 · 111

(3 + 1) · (2 + 1) · (1 + 1) · (1 + 1) · (1 + 1)

6 · 4 · 2 · 2 = 26 · 3 = 96 divisores

Los jueces (UCM) AdaByron 2016 51 / 62

Page 97: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

30.240 = 25 · 33 · 51 · 71

(5 + 1) · (3 + 1) · (1 + 1) · (1 + 1)

6 · 4 · 2 · 2 = 26 · 3 = 96 divisores

27.720 = 23 · 32 · 51 · 71 · 111

(3 + 1) · (2 + 1) · (1 + 1) · (1 + 1) · (1 + 1)

6 · 4 · 2 · 2 = 26 · 3 = 96 divisores

Los jueces (UCM) AdaByron 2016 51 / 62

Page 98: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

Hay que buscar todas las formas de reescribir d como secuencia demultiplicaciones, y, para cada una, construir cada n:

Reescritura Salida64 263 = ∞

32 · 2 231 · 31 = ∞16 · 4 215 · 33 = 294.912

. . .4 · 4 · 2 · 2 23 · 33 · 51 · 71 = 7560

. . .

Los jueces (UCM) AdaByron 2016 52 / 62

Page 99: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercader

Cosas importantes:

1 Hay muchas formas de reescribir los números altos. Usamos vuelta atráspara cancelar las reescrituras que no vayan a mejorar el mejor nconstruído.

2 Cuando se calcule Kk hay que vigilar que no se supera el límite y anular lavuelta atrás si lo hace.

Los jueces (UCM) AdaByron 2016 53 / 62

Page 100: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercaderSolución alternativa

Todos los números de la salida tienen la misma forma:

2a · 3b · 5c · . . .

con a ≥ b ≥ c . . . ≥ 0

Idea:

• Generar todos los posibles que no desborden

• Para cada uno calcular su número de divisores, a + 1 · b + 1 · . . .• Guardar en una tabla hash respuestas[numDivisores]=menorGenerado

• Contestar cada caso mirando en la tabla hash

¡Sólo hay 266 entradas que no dan +INF!

Los jueces (UCM) AdaByron 2016 54 / 62

Page 101: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercaderSolución alternativa

Todos los números de la salida tienen la misma forma:

2a · 3b · 5c · . . .

con a ≥ b ≥ c . . . ≥ 0

Idea:

• Generar todos los posibles que no desborden

• Para cada uno calcular su número de divisores, a + 1 · b + 1 · . . .• Guardar en una tabla hash respuestas[numDivisores]=menorGenerado

• Contestar cada caso mirando en la tabla hash

¡Sólo hay 266 entradas que no dan +INF!

Los jueces (UCM) AdaByron 2016 54 / 62

Page 102: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

I. El acertijo del mercaderSolución alternativa

Todos los números de la salida tienen la misma forma:

2a · 3b · 5c · . . .

con a ≥ b ≥ c . . . ≥ 0

Idea:

• Generar todos los posibles que no desborden

• Para cada uno calcular su número de divisores, a + 1 · b + 1 · . . .• Guardar en una tabla hash respuestas[numDivisores]=menorGenerado

• Contestar cada caso mirando en la tabla hash

¡Sólo hay 266 entradas que no dan +INF!

Los jueces (UCM) AdaByron 2016 54 / 62

Page 103: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

J. La comida de los pollitos

Envíos Válidos % éxito4 3 75%

Los jueces (UCM) AdaByron 2016 55 / 62

Page 104: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

J. La comida de los pollitos

Simular el movimiento de cada pollito de forma independiente y acumular enuna matriz los granos necesarios para cada uno.

Los jueces (UCM) AdaByron 2016 56 / 62

Page 105: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

J. La comida de los pollitos

Vamos haciendo avanzar al pollito en cada una de las cuatro direcciones eincrementamos el número de pasos a dar cada dos tramos recorridos.

Los jueces (UCM) AdaByron 2016 57 / 62

Page 106: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Envíos Válidos % éxito11 5 45%

Los jueces (UCM) AdaByron 2016 58 / 62

Page 107: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Queremos saber cuántos túneles como mínimo serían necesarios paraatravesar todos los edificios.

Descripción abstracta: Dada una serie de intervalos, calcular el menorconjunto de puntos P tal que todo intervalo tenga al menos un punto en P.

Los jueces (UCM) AdaByron 2016 59 / 62

Page 108: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 109: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 110: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 111: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 112: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 113: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 114: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 115: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 116: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 117: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 118: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 119: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 120: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 121: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 122: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 123: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 124: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 125: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 126: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 127: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 128: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 129: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

K. ¡En primera línea de playa!

Estrategia voraz: Considerar los edificios de menor a mayor extremo oriental ypara cada edificio sin túnel, colocar un túnel en ese extremo.

Los jueces (UCM) AdaByron 2016 60 / 62

Page 130: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

L. Teclas del piano

Envíos Válidos % éxito41 11 26%

Los jueces (UCM) AdaByron 2016 61 / 62

Page 131: AdaByron 2016 - Esbozo de las solucionesada-byron.es/2016/Ada2016-SolOutlines.pdf · A- Lamáquinacalculadora Grafos,búsquedaenanchura B- Palmerasenlanieve Iteración,segmentodelongitudmáxima

Soluciones a los problemas

L. Teclas del piano

Si]Do Re

Fa[Mi

Mi]Fa Sol La

Do[Si

Do]

/Re[

Re]

/Mi[

Fa]/

Sol[

Sol]/

La[

La]/

Si[

Si Do

Los jueces (UCM) AdaByron 2016 62 / 62