Algorithmes et Techniques en Programmation Concurrentielle
P2569 https://www.luogu.com.cn/problem/P2569
Référence à cet article.
/* Optimisation de DP par file monotone
L'équation de transfert pour l'achat d'actions énumère j de manière séquentielle, car le nombre d'actions détenues devrait augmenter. La décision actuelle pourrait être nécessaire pour des j plus tardifs, donc elle doit être calculée à ...
Publié le 23 juin à 18h46
Implémentation d'une pile en Java avec un tableau dynamique
Cette structure peut être implémentée à l'aide d'un tableau. Voici les principes :
L'empilement ajoute des éléments à la fin du tableau.
Le dépilement supprime des éléments de la fin du tableau.
Commençons par un exemple d'utilisation de la classe Stack de Java :
public static void main(String[] args) {
Stack<String> maPile = new S ...
Publié le 23 juin à 18h22
Le Jeu du Roi
En ce jour de fête nationale dans le royaume H, le roi invite n dignitaires à participer à un jeu récompensé.
Chaque dignitaire note un nombre entier sur sa main gauche et un sur sa main droite. Le roi fait de même.
Les n dignitaires forment ensuite une file, avec le roi en tête.
Chaque dignitaire reçoit un certain nombre de pièces d'or, calcul ...
Publié le 20 juin à 21h51
Implémentation et Analyse de la Liste Doublement Chaînée Circulaire en C
La liste doublement chaînée (doubly linked list) est une structure de données linéaire où chaque élément, appelé nœud, contient des références vers son successeur et son prédécesseur. Contrairement à une liste simple, la variante la plus robuste et la plus utilisée en pratique est la liste doublement chaînée circulaire avec nœud sentinelle.
1. ...
Publié le 20 juin à 00h14
Maîtrise des structures dict et set dans Python
1. Introduction aux dictionnaires
En Python, les listes et tuples permettent de stocker des séquences ordonnées, comme des noms d'élèves ou des notes d'examen. Cependant, pour associer des noms à des valeurs correspondantes, comme des notes, ces structures deviennent pratiques. Un dictionnaire (dict) établit un mappage clé-valeur, permettant un ...
Publié le 15 juin à 22h26
Pratique d'algorithmes pour listes chaînées : Suppression, conception et inversion de nœuds
Suppression d'éléments dans une liste chaînée
Problème : Étant donné la tête d'une liste chaînée et une valeur entière, supprimer tous les nœuds où la valeur du nœud est égale à la valeur donnée et retourner la nouvelle tête.
Approche : Utiliser un nœud factice (dummy node) pour simplifier la manipulation, en particulier pour la suppression du ...
Publié le 14 juin à 22h37
Journal de résolution d'exercices algorithmiques
11.23
LG14362 [CSP-S2025] Route
Un ajout important : pour un graphe donné, après avoir calculé son arbre couvrant minimum (MST), si l'on ajoute d'autres arêtes pour former un nouveau graphe, le MST du nouveau graphe n'utilisera jamais les arêtes non-arbres de l'ancien graphe.
LG14394/LOJ2729 [JOISC 2016] Poupée gigogne
Analyse
Le problème sembl ...
Publié le 14 juin à 03h02
Implémentations algorithmiques fondamentales en C
Cet article présente plusieurs implémentations courantes d'algorithmes et de structures de données en langage C, souvent rencontrées dans des examens de programmation.
Addition de grands entiers
#include <stdio.h>
#include <string.h>
#define MAX_TAILLE 20
void inverser_chaine(char *chaine) {
int debut = 0, fin = strlen(chaine) ...
Publié le 13 juin à 21h42
Techniques et syntaxe C++ pour la programmation compétitive
Mise à jour le 30/01/2022 : Ajout initial de la bibliothèque de modèles STL, cette section n'est pas encore complète
Introduction
Cet article présente des syntaxes et techniques pratiques pour la programmation compétitive (OI), adaptée aux participants aux Olympiades d'informatique. Les débutants ou les étudiants en informatique pourraient ne p ...
Publié le 12 juin à 01h49
Concevoir et implémenter un tableau dynamique en C++
La gestion des tableaux en C++ peut être délicate, surtout lorsque leur taille doit varier pendant l'exécution du programme. Bien que la bibliothèque standard offre des conteneurs comme std::vector, comprendre les mécanismes sous-jacents est fondamental pour maîtriser la programmation système et la gestion de la mémoire. Cet article explore la ...
Publié le 10 juin à 17h13