Olimpiada Oaxaqueña de Informática
  • Bienvenido a la Olimpiada Oaxaqueña de Informática
  • Temario
    • Introducción a la Programación
      • Definición de computadora
      • Definición de Sistema Operativo
      • Definición de lenguaje de programación
      • Definición de compilador
      • Sistema Binario y Hexadecimal
      • Operaciones AND, OR, NOT, XOR
      • Definición y ejemplo de algoritmos
      • Representación gráfica de un algoritmo
      • Qué es un pseudocódigo
        • Estructura base y Variables
        • Condicionales y ciclos
      • Configuración e instalación de compilador de C y C++
    • Lenguajes de Programación C y C++
      • Presentación de C y C++ como lenguajes de programación
      • Estructura de un programa en C++
        • Ejemplos de códigos en C++
      • Tipos de datos y variables
      • Entrada y salida de datos STDIN SDTOUT
      • Estructuras de Control y Repetición
      • Introducción a estructuras de datos: arreglos
    • Algoritmos de ordenamiento
      • Bubble Sort
    • Estructuras de datos
      • Pilas (Stack)
    • Paradigmas de Solución de Problemas
    • Gráfos
    • Matemáticas
    • Procesamiento de Cadenas
  • OOI 2019
    • Cursos online
      • Clase 1
      • Clase 2
      • Clase 3
      • Clase 4
      • Clase 5
      • Clase 6
      • Clase 7
      • Clase 8
      • Clase 9
      • Clase 10
      • Clase 11
      • Clase 12
      • Clase 13
      • Clase recursión introductorio
  • OOI 2020
    • Instrucciones para nuevos miembros
    • Cursos introductorios
      • Clase 1
      • Clase 2
      • Clase 3
      • Clase 4
      • Clase 5
      • Clase 6
      • Clase 7
      • Clase 8
      • Clase 9
      • Clase 10
      • Clase 11
      • Clase 12
      • Clase 13
      • Clase 14
      • Clase 15
      • Clase 16
      • Clase 17
      • Clase 18
      • Clase 19
      • Clase 20
      • Clase 21
      • Clase 22
    • Cursos avanzados
      • Temario
      • Sesión 1
      • Sesión 2
      • Sesión 3-4
      • Sesión 5
      • Sesión 6
      • Sesión 7
      • Sesión 8
      • Sesión 9-10
      • Sesión 11
      • Sesión 12
      • Sesión 13
      • Sesión 14
      • Sesión 15
      • Sesión 16
      • Sesión 17
      • Sesión 18
      • Sesión 19
      • Sesión 20
      • Sesión 21
      • Sesión 22
    • Cursos matemáticas discretas
      • Sesión 1
      • Sesión 2
  • OOI 2021
    • Fase 4. Semana 1
  • Misceláneos
    • Complejidad de un algoritmo
    • Tutorial instalación VS Code, compilador y debugger para C++
Powered by GitBook
On this page
  • Temas
  • Ejercicios
  • DFS
  • Backtracking
  • Códigos vistos en clase
  1. OOI 2020
  2. Cursos avanzados

Sesión 18

Clase del 23 de abril de 2020. Backtracking

PreviousSesión 17NextSesión 19

Last updated 5 years ago

Temas

  • Continuacion DFS

  • Introducción a backtracking

Ejercicios

DFS

Ejercicio: Encontrar todas las sumas posibles diferentes mayores o iguales a x en un vector. Entrada:

{1, 4, 5}
x = 5

Salida:

5, 6, 9, 10

Backtracking

Material de backtracking:

Ejemplo: Encontrar la suma mas grande menor o igual a x en un vector e imprimir la forma en que se llega al resultado.

Fuente: Problema del CD

Entrada

Primera linea indica x

Segunda linea es la cantidad de elementos en el vector.

Siguiente linea contiene los valores del vector

5
3
1  3  4

1 + 4 = 5
10
4
9  8  4  2

8 + 2 = 10
20
4
10  5  7  4

10 + 5 + 4 = 19
90
8
10  23  1  2  3  4  5  7

10 + 23 + 1 + 2 + 3 + 4 + 5 + 7 = 55
45
8
4  10  44  43  12  9  8  

4 + 10 + 12 + 9 + 8  = 45

Solución

Usar backtracking para generar todas las sumas posibles y elegir la mejor.

Códigos vistos en clase

Video:

https://github.com/omioaxaca/ooi-2020/blob/master/curso-avanzado/sesion-18/backtraking.md
https://onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=565
https://youtu.be/0DbR7GGUXnw
ooi-2020/curso-avanzado/sesion-18 at master · omioaxaca/ooi-2020GitHub
Logo