Maîtriser la classe std::list en C++ : Structure et Utilisation
Présentation de std::list
Dans la bibliothèque standard C++ (STL), std::list est un conteneur de séquence implémenté sous la forme d'une liste doublement chaînée. Contrairement aux tableaux dynamiques comme std::vector, les éléments d'une liste ne sont pas stockés de manière contiguë en mémoire. Chaque élément, ou nœud, contient la donnée elle- ...
Publié le 12 juillet à 06h27
Recherche des puissances parfaites - Factorisation en nombres premiers
Problème : Trouver la valeur maximale de p telle que x = bp, où b est un entier. Par exemple, 25 = 52 et 64 = 26. L'entrée est x, la sortie est p.
La solutino repose sur la décomposition en facteurs premiers du nombre donné, followed par le calcul du PGCD des exposants.
Fonction de décomposition en facteurs premiers :
int facteurs[100];
int exp ...
Publié le 10 juillet à 04h10
Programmation Orientée Objet en C++ : Composition, Gestion de la Mémoire et Conteneurs Dynamiques
Simulation d'une Interface Graphique par Composition
L'utilisation de la composition permet de construire des systèmes complexes en assemblant des objets plus simples. Ici, nous modélisons une fenêtre conetnant des boutons.
// bouton.hpp
#ifndef BOUTON_HPP
#define BOUTON_HPP
#include <iostream>
#include <string>
class Bouton {
pub ...
Publié le 5 juillet à 21h49
Le Principe d'Inclusion-Exclusion en Algorithmique
Le principe d'inclusion-exclusion (PIE) est une technique combinatoire fondamentale permettant de calculer le cardinal d'une union de plusieurs ensembles. En informatique, il est particulièrement efficace pour résoudre des problèmes de dénombrement où il est plus simple de compter le complémentaire d'un ensemble ou des intersections spécifiques ...
Publié le 4 juillet à 16h34
Fusion efficace de deux tableaux triés et gestion de la mémoire en C++
Fusion de deux tableaux triés (LeetCode 88)
L'objectif est de fusionner deux tableaux d'entiers triés, nums1 et nums2, en un seul tableau trié au sein de nums1. Pour optimiser l'espace, nous utilisons une approche à trois pointeurs partant de la fin des tableaux, ce qui évite d'utiliser une structure de données intermédiaire.
class Solution {
...
Publié le 3 juillet à 01h52
Maîtriser la Standard Template Library (STL) en C++ : Fondamentaux
La Standard Template Library (STL) est une composante logicielle essentielle du langage C++. Elle fournit un ensemble de structures de données et d'algorithmes génériques hautement optimisés. L'architecture de la STL repose sur plusieurs piliers fondamentaux :
Conteneurs : Structures de données pour stocker des objets.
Itérateurs : Ponts entre ...
Publié le 1 juillet à 21h35
ABC377 - Solutions et Explications
Problème C
La solution consiste à marquer les cellules qui ne peuvent pas être utilisées, puis à soustraire ce nombre du nombre total de cellules.
On utilise une structure de type map pour stocker les cellules déjà traitées afin d'éviter les doublons.
Code de la solution
#include<bits/stdc++.h>
#define int long long
using namespace std; ...
Publié le 30 juin à 00h27
Algorithmes de Programmation Dynamique à Deux Chemins Simultanés
Lorsqu'un problème algorithmique nécessite de tracer deux chemins indépendants sur une matrice, généralement du coin supérieur gauche vers le coin inférieur droit, l'objectif est souvent de maximiser la somme des valeurs collectées. Une contrainte classique stipule que si les deux chemins se croisent sur une même cellule, la valeur de celle-ci ...
Publié le 30 juin à 00h07
Fonction totient d'Euler : théorie et algorithmes de calcul
La fonction indicatrice d'Euler, notée \(\varphi(n)\), compte le nombre d'enteirs posiitfs inférieurs ou égaux à \(n\) qui sont premiers avec \(n\). Si \(p\) est un nombre premier, on a immédiatement \(\varphi(p) = p - 1\).
Propriétés fondamentales
La fonctoin totient possède plusieurs propriétés remarquables :
Multiplicativité : si \(\gcd(a, ...
Publié le 29 juin à 18h21
Optimisation du problème du sac à dos complet
Le problème du sac à dos complet (ou sans limite) est une variante classique de la programmation dynamique. La différence fondamentale avec le problème du sac à dos 0/1 réside dans le fait que chaque article peut être sélectionné un nombre illimité de fois.
L'équation de transition d'état de base s'écrit :
dp[i][j] = max(dp[i-1][j - k*volume[i] ...
Publié le 25 juin à 18h36