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