¿Qué es un algoritmo para programar un torneo para que termine en el menor tiempo posible, dado un torneo round robin (donde cada jugador juega entre sí) entre n jugadores (n es par) que puede representarse con un gráfico completo?

Si n no es divisible por 4, dibuja todos los equipos en un círculo. Para cada ciclo de coincidencia, dibuja una línea que corte este círculo directamente a la mitad para que ambos lados sean espejos el uno del otro. Empareje los equipos que se reflejan entre sí y, si hay alguno, cualquier equipo que se cruce con la línea (habrá 2 o cero). Estos serán los partidos del primer ciclo. Luego, gire el círculo en el sentido de las agujas del reloj por un equipo y vuelva a hacerlo. Deténgase cuando el par de equipos que originalmente se dividió por la línea se divide nuevamente.

Luego, si n es divisible por 4, dibuja todos los equipos en un círculo nuevamente. Al primer ciclo del partido se le asignarán pares de equipos adyacentes, etiquételos “a” y “b”. Luego, trate cada uno de estos pares como un solo nodo para el caso n / 2. Calcule todos los emparejamientos que haría con el caso n / 2. Para cada uno de estos ciclos calculados, habrá dos reemplazos para pares de nodos: el primero donde el enlace representa a del primer nodo que va a a del segundo, yb del primer nodo con la b del segundo, y entonces el segundo reemplazo estará uniendo a del primer nodo con b del segundo, yb del primer nodo uniendo a a del segundo.

More Interesting

¿Cuál es el algoritmo de programación del juego para una temporada regular de la NBA?

¿Cómo se puede incorporar un algoritmo adaptativo en un sistema operativo?

¿Por qué son tan importantes los algoritmos?

¿Qué es un algoritmo increíble que encontraste?

¿Cómo pasan su tiempo exactamente los participantes en varios sitios de codificación de algoritmos?

Además de la velocidad, ¿qué otras medidas de eficiencia se podrían usar en un entorno real?

¿Cuál es la principal ventaja de utilizar la búsqueda de profundización iterativa en comparación con la búsqueda de amplitud primero?

¿Existe un mejor patrón para aprender algoritmos de programación?

¿Por qué Lua está diseñado de tal manera que obtener el tamaño de una tabla es O (n) en el tamaño de la tabla?

¿Cómo podemos implementar las funciones de deshacer y rehacer en una cola de doble final?

¿Se requiere un buen conocimiento de la estructura de datos y algoritmos para saltar a la codificación competitiva?

¿Cómo debo practicar para poder asear la mayoría de los concursos Gold de USACO?

¿Qué tipo de algoritmos de visión por computadora se utilizan en los robots industriales?

Como senior que busca postularse a empresas como Google, Palantir, etc., ¿cómo puedo mejorar mis estructuras de datos avanzadas, algoritmos y cursos de bioinformática y tener más confianza en mí mismo al ingresar a un aula y no pensar automáticamente que soy estúpido? ?

Matrices de sufijos: Dadas dos cadenas s1 y s2. ¿Cuál es el mejor algoritmo para encontrar el número de subcadenas comunes entre s1 y s2 de longitud 1, 2,… hasta min (| s1 |, | s2 |)?