L'algorithme de Dijkstra pour les plus courts chemins dans les graphes pondérés

Principe fondamental L'algorithme de Dijkstra calcule les plus courts chemins depuis un sommet source dans un graphe dont toutes les arêtes ont un poids non négatif. Sa complexité temporelle est de O(n²) dans sa version naïve et de O((n + m) log n) avec une optimisation par tas. L'idée centrale consiste à sélectionner itérativement le sommet no ...

Publié le 19 juin à 17h04

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

Optimisation de la suppression d'arêtes dans un graphe pondéré

Ce problème concerne un graphe non orienté comportant n sommets et m arêtes pondérées. De plus, il existe k arêtes supplémentaires connectant le sommet 1 à divers autres sommets. L'objectif est de déterminer le nombre maximal d'arêtes parmi ces k arêtes que l'on peut supprimer, tout en garantissant que les distances les plus courtes de tous les ...

Publié le 15 juin à 19h48

Préparation aux concours de programmation CSP-S et NOIP 2025

Script de test automatisé Pour valider une solution, on peut utilisre un script qui génère des données, exécute une solution standard et la solution proposée, puis compare les sorties. Voici une version réécrite en C++ : #include<iostream> #include<cstdlib> #include<string> int main() { std::ios::sync_with_stdio(false); ...

Publié le 13 juin à 02h59

Notes de Solutions APIO 2018-2024

Notes de Solutions APIO 2018-2024 Ces problèmes sont vraiment difficiles. (Mise à jour en cours...) Table des matières- Notes de Solutions APIO 2018-2024 [APIO2018] Ironman [APIO2018] Sélection de cercles [APIO2023] Cyberland [APIO2024] Septembre [APIO2018] Ironman D'abord, nous contractons les points doubles. Nous devons déterminer combien d ...

Publié le 9 juin à 10h28

Problème du Mur Hamiltonien

Problème du Mur Hamiltonien Énoncé du problème On vous donne une matrice $2\times m$ qui ne contient que les caractères B et W. Chaque colonne contient au moins un caractère B. La question est de savoir s'il existe un chemin qui satisfait les conditions suivantes : Les cellules adjacentes dans le chemin partagent un côté commun (pas seulement ...

Publié le 9 juin à 06h36

Distribution de Données dans un Réseau d'Ordinateurs

Dans un réseau d'ordinateurs, certains sont connectés par des câbles de données bidirectionnels. Lorsqu'un ordinateur reçoit des données, il peut les transmettre à tous les ordinateurs directement ou indirectement connectés. L'objectif est de déterminer le nombre minimum d'rodinateurs auxquels il faut entrer les données initialement pour que to ...

Publié le 7 juin à 04h16

Détection de Points d'Articulation et de Ponts, et Calcul du Chemin Critique dans les Graphes

Les algorithmes de graphes sont fondamentaux pour résoudre de nombreux problèmes en informatique. Cette exploration se concentre sur deux applications classiques : la détection des points d'articulation et des ponts dans les graphes non orientés, et le calcul du chemin critique pour l'ordonnancement de tâches dans les graphes orientés acyclique ...

Publié le 3 juin à 20h38

Solutions techniques à des défis de programmation : parcours de graphe, ordonnancement d'événements et problèmes de géométrie combinatoire

Ce document présente des solutions détaillées pour trois problèmes d'algorithmique distincts, issus d'un exercice de compétition. Problème 1 : Plus court chemin avec points marqués Étant donné un graphe orienté avec n sommets et m arcs, contenant k points marqués, l'objectif est de trouver la plus courte distance parcourue depuis un pointt de d ...

Publié le 2 juin à 22h06