¿Cómo debería uno prepararse para los problemas en los árboles en la programación competitiva?

Hay un proceso de dos pasos para aprender cualquier algoritmo o estructura de datos.

  1. Estudie de alguna buena fuente y comprenda lo suficientemente bien.
  2. Resuelva problemas basados ​​en él para comprobar su comprensión y confiar en él.

Si no puede resolver los problemas, debe repetir el paso 1 nuevamente.

Como la pregunta es solo sobre árboles, déjame darte algunos recursos muy buenos para aprender (es decir, el paso 1)

Árbol normal y binario:

  • Árboles Archives – GeeksforGeeks

Árbol de búsqueda binaria:

  • Una introducción a la búsqueda binaria y los árboles rojo-negros

Árbol indexado binario:

Árboles + DP:

  • Tutorial de DP on Trees – Codeforces
  • Programación dinámica en árboles Tutorial de Lalit Kundu en Threads @ IIIT Hyderabad

Árbol de segmento:

  • MAXimal :: algo :: Дерево отрезков (Traducirlo al inglés)

Árbol de segmentos + propagación perezosa:

Estas fueron algunas de las cosas que aprendí recientemente. Hay otros miles de tutoriales en varias secciones de árboles, encuéntrelos y apréndalos.

El segundo paso consiste en practicar las mismas habilidades, es decir, resolver problemas basados ​​en estos. Aquí hay algunos archivos de problemas:

  • Resolver desafíos de código de estructuras de datos (problemas relacionados con árboles normales)
  • A2 Juez en línea (problemas relacionados con árboles normales)
  • A2 Juez en línea (problemas basados ​​en el árbol de segmentos)
  • A2 Juez en línea (problemas basados ​​en árbol indexado binario)

¡Todo lo mejor! 🙂