Analyse et Résolution des Problèmes du Concours NOIp 2015

Jour 1 - Problème 1 : Le Carré Magique Fantastique Ce problème est une simulation directe de la construction d'un carré magique d'ordre impair. L'objectif est de remplir une matrice de taille $N \times N$ en suivant des règles de positionnement relatives au nombre précédemment placé. #include <iostream> #include <vector> using name ...

Publié le 23 juillet à 06h20

Plus Proche Ancêtre Commun dans un arbre

Introduction Le plus proche ancêtre commun (PPAC), noté lca(a, b), désigne le nœud le plus profond qui est ancêtre à la fois de a et b dans un arbre enraciné. Plusieurs algorithmes permettent de résoudre ce problème, chacun offrant un compromis différent entre le prétraitement, la complexité par requête et le mode de fonctionnement (en ligne ou ...

Publié le 12 juillet à 06h13

Résolution de Problèmes Algorithmiques Avancés : Programmation Dynamique, Plus Court Chemin et Ensembles Disjoints

Problème 1 : Jeu de Nombres et Programmation Dynamique Ce problème modélise un jeu séquentiel impliquant N entités disposées en cercle. Chaque entité annonce un entier dans l'intervalle [x+1, x+K], où x est le nombre précédent, sans dépasser une limite maximale M. L'entité qui annonce M perd. L'objectif est de déterminer, pour chaque position d ...

Publié le 9 juillet à 08h02

Rapport de résolution pour le problème P4427 [BJOI2018] Somme des profondeurs

Rapport de résolution pour le problème P4427 [BJOI2018] Somme des profondeurs 1. Énoncé du problème La tâche principale de ce problème est la suivante : étant donné un arbre ayant le nœud 1 comme racine, il faut répondre à plusieurs requêtes. Chaque requête fournit deux nœuds u, v et un entier k, et nous devons calculer la somme des k-ièmes pui ...

Publié le 8 juillet à 02h45

Ancêtre commun le plus proche (LCA) dans un arbre

L'ancêtre commun le plus proche (LCA) de deux nœuds u et v dans un arbre enraciné est le nœud le plus profond qui est un ancêtre à la fois de u et de v. Par exemple, dans l'arbre ci-dessous, LCA(3,7) = 1 et LCA(3,4) = 2. Il existe plusieurs méthodes pour calculer le LCA, classifiées en algorithmes hors ligne (toutes les requêtes sont connues à ...

Publié le 29 juin à 20h34

Prétraitement pour le plus proche ancêtre commun dans les arbres

L'algorithme du plus proche ancêtre commun (LCA) dans un arbre repose sur des techniques de prétraitement pour optimiser les requêtes. Trois types de relations d'ascendance existent entre deux nœuds : a est ancêtre de b, b est ancêtre de a, ou aucun lien direct. Pour un ensemble de nœuds, le LCA peut être déterminé en identifient les points ave ...

Publié le 22 juin à 22h26

Algorithmes LCA : Entraînement avec des problèmes introductifs

L'algorithme du plus ancêtre commun (LCA) est une technique fondamentale pour résoudre des problèmes de distance ou de relations dans des arbres. Cet article présente plusieurs problèmes d'entraînement pour maîtriser le LCA, avec des explications et des implémentations en C++. Problème 1 : Distance entre maisons Lien : HDU 2586 Description : Un ...

Publié le 17 juin à 17h54