Problème de la plus longue sous-séquence croissante
La programmation dynamique offre des solutions efficaces pour résoudre des problèmes d'optimisation combinatoire. Un classique est de déterminer la plus longue sous-séquence strictement croissante (LIS) dans une suite donnée. Cette section explore plusieurs approches algorithmiques, de la méthode naïve en O(n²) à l'optimisation en O(n log n), a ...
Publié le 15 juillet à 05h02
Structures de données : Tableaux unidimensionnels et bidimensionnels en C
Cet article explore les concepts fondamentaux des tableaux, en commençant par les tableaux unidimensionnels, leur déclaration, initialisation et manipulation. Il aborde ensuite les tableaux bidimensionnels, couvrant des sujets similaires. Des exemples de code et des explications sur leur stockage en mémoire sont fournis pour une meilleure compr ...
Publié le 14 juillet à 22h21
Résolution de problèmes de compétition algorithmique en C++
Optimisation des entraînements militaires
Approche gloutonne : Trier les soldats par nombre d'entraînements nécessaires. Calculer le coût total actuel et comparer avec le coût groupé pour prendre la décision optimale à chaque étape.
#include <iostream>
#include <vector>
#include <algorithm>
struct Soldat {
long long prix; ...
Publié le 13 juillet à 00h57
Techniques fondamentales d'algorithmique : structures de données et optimisation
Tableaux
Recherche binaire
Étant donné un tableau trié en ordre croissant et une valeur cible, implémentez une fonction de recherche avec une complexité O(log n) retournant l'index de la cible ou -1.
Deux approches selon la définition de l'intervalle :
Intervalle [gauche, droite) : right = longueur du tableau
Intervalle [gauche, droite] : ri ...
Publié le 7 juillet à 21h20
Programmation 0/1 : Optimisation par Recherche Binaire
La programmation 0/1, ou programmation fractionnaire 0/1, est une classe de problèmes d'optimisation. Elle implique la sélection d'un sous-ensemble d'éléments, où chaque élément a deux attributs, disons \(a_i\) et \(b_i\). L'objectif est de maximiser (ou minimiser) le ratio \(\frac{\sum a_i \times d_i}{\sum b_i \times d_i}\), sous certaines con ...
Publié le 21 juin à 02h38
Calcul de la médiane de deux tableaux triés
Étant donné deux tableaux triés arrA et arrB de tailles respectives lenA et lenB, l'objectif est de déterminer leur médiane avec une complexité temporelle de O(log(lenA + lenB)). On suppose que les tableaux ne sont pas simultanément vides.
Exemple :
Entrée : arrA = [1, 3], arrB = [2]
Sortie : La médiane est 2.0
Approches algorithmiques
1. Fusio ...
Publié le 17 juin à 04h07
Exercices sur la recherche binaire et leurs solutions en C
L'algorithme de recherche binaire standard peut retourner n'importe lequel des éléments correspondants lorsque plusieurs occurrences existent. Pour garantir le retour de la première occurence, une modification est nécessaire. En utilisant le tableau défini par int donnees[8] = { 1, 2, 2, 2, 5, 6, 8, 9 };, l'implémentation suivante ajuste la log ...
Publié le 8 juin à 06h41