Algorithmes de la STL en C++ : Guide pratique

1. Algorithmes non modifiants Ces algorithmes inspectent les éléments sans les modifier. 1.1 find, find_if et find_end find(b, e, val) : retourne un itérateur vers la première occurrence de val. find_if(b, e, pred) : trouve le premier élément satisfaisant le prédicat pred. find_end(b, e, sb, se) : localise la dernière occurrence d’une sous-séq ...

Publié le 11 octobre à 11h48

Concours de programmation de l'Université de Technologie de Harbin - Solutions non officielles

Solutiosn non officielles du 12ème concours de programmatino de l'Université de Technologie de Harbin (synchronisé) A. Coupe de ciboulette Code #include <iostream> #include <algorithm> #include <cmath> #define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); using namespace std; typedef long long ll; const int mod = 1e9 ...

Publié le 4 octobre à 23h55

Algorithme de tri rapide : Principes et implémentation

Le tri rapide (QuickSort) est un algorithme de tri fondamental en informatique, développé par C. A. R. Hoare en 1960. Cet algorithme repose sur le principe de diviser pour régner, partitionnant les données puis triant récursivement chaque sous-groupe jusqu'à obtenir une séquence entièrement ordonnée. Principe fondamental L'essence du tri rapide ...

Publié le 3 octobre à 22h02

Compter les sous-rectangles sans bombe à l'aide du principe d'inclusion-exclusion

Énoncé du problème On dispose d'une grille rectangulaire de taille N par M. Des bombes sont placées sur K cellules distinctes (avec K ≤ 20). Le but est de déterminer le nombre total de sous-rectangles (définis par leurs coordonnnées supérieure gauche et inférieure droite) qui ne contiennent aucune bombe. Approche par principe d'inclusion-exclus ...

Publié le 29 septembre à 08h00

Optimisation des Mouvements sur Graphes : Le Jeu de ZZH

Ce problème introduit un jeu où deux joueurs, S et T, évoluent sur deux graphes distincts. L'objectif est de trouver la valeur minimale d'une contrainte combinée permettant aux deux joueurs d'atteindre le nœud 1 de leur graphe respectif. Chaque joueur peut se déplacer d'un nœud actuel vers un nœud cible, à condition que tous les nœuds du chemin ...

Publié le 23 septembre à 23h29

Pratique du développement d’un simulateur en C++ : Algorithmes du conteneur STL

Ces algorithmes analysent ou recherchent des éléments sans altérer le contenu du conteneur. Recherche d’éléments : find, find_if, find_end find(first, last, val) : retourne l’itérateur du premier élément égal à val, ou last s’il n’est pas trouvé. find_if(first, last, pred) : localsie le premier élément satisfaisant un prédicat. find_end(first1 ...

Publié le 23 septembre à 11h27

Comprendre le tri topologique: Algorithmes et applications

Définition Le tri topologique est un algorithme qui s'applique aux graphes orientés sans cycle (DAG - Directed Acyclic Graph). Il arrange tous les nœuds du graphe dans une séquence linéaire telle que pour tout arc connectant deux nœuds (u, v), le nœud u précède le nœud v dans la séquence. Implémentation de l'algorithme Le processus du tri topol ...

Publié le 19 septembre à 22h02

Algorithme du crible d'Ératosthène

La méthode du crible d'Ératosthène permet de trouver efficacement tous les nombres premiers inférieurs ou égaux à n. Contrairement à la méthode naïve (tester chaque nombre individuellement), le crible d'Ératosthène améliore considérablement l'efficacité, avec une complexité temporelle de O(n log log n), ce qui est idéal pour les grands ensembl ...

Publié le 14 septembre à 17h38

Algorithmes de Recherche Binaire: Solutions Problèmes Classiques

[Problème des Vaches Anragées] Lien vers le problème: Vaches Enragées Approche: Un problème classique de recherche binaire de réponse, similaire au problème des pierres sautantes. On binaire la distance minimale entre chaque étable, puis on vérifie si la réponse est valide en l'énumérant. Code: Cliquer pour voir le code``` #include #include #in ...

Publié le 12 septembre à 03h31

Applications pratiques de l'inversion et de la fusion de listes chaînées en Python

Utilité concrète des opérations sur listes chaînées Les algorithmes d'inversion et de fusion de listes chaînées ne sont pas seulement des exercices académiques. Ils servent de briques fondamentales dans plusieurs domaines du développement logiciel, notamment pour le traitement de données séquentielles, les algorithmes de tri externes ou encore ...

Publié le 9 septembre à 16h11