NOI.ac 2020 - Simulateur de Sélection Provinciale 3
Problème A : SA
Pour résoudre ce problème, nous utilisons un tableau de suffixes. Pour chaque requête, nous modifions un caractère spécifique de la chaîne T et comptons les occurrences de cette nouvelle chaîne dans S.
La fonction f(L,R,l,r,len) permet de déterminer les intrevalles de suffixes correspondant à des sous-chaînes de longueur len. En ...
Publié le 9 octobre à 03h00
Stratégies et Implémentations pour les Problèmes de Programmation Compétitive
Problème 1 : Approximation de Pi
Ce problème demande d'afficher les N premières décimales de Pi, précédées de "3.". La solution consiste à utiliser une chaîne de caractères pré-définie contenant une approximation suffisamment longue de Pi et d'en extraire une sous-chaîne selon la précision requise.
import math
def afficher_pi_tronque ...
Publié le 18 septembre à 02h45
Optimisation de la Programmation Dynamique par la Technique de l'Enveloppe Convexe
Modèle Mathématique et Interprétation Géométrique
La technique de l'enveloppe convexe (Convex Hull Trick) est une méthode d'optimisation puissante utilisée pour accélérer certaines récurrences de programmation dynamique. Elle s'applique typiquement aux équations de transition de la forme suivante :
\[ dp[i] = \min_{j < i} \{ dp[j] + A[i] + B ...
Publié le 3 septembre à 22h52
Optimisation de la Programmation Dynamique par Multiplication Matricielle
La multiplication matricielle est une technique puissante pour optimiser les récurrences linéaires en programmation dynamique. Cet article explore plusieurs applications, allant des suites classiques aux problèmes de graphes, en mettant l'accent sur l'exponentiation rapide et les adaptations nécessaires.
Suite de Fibonacci avec des Grandes Vale ...
Publié le 3 août à 05h46
Évaluation de la rentabilité maximale pour un cambrioleur
Vous incarnez un cambrioleur expérimenté qui planifie une série de vols dans des maisons situées le long d'une rue. Chaque maison recèle une certaine quantité d'argent. La seule restriction est que les systèmes de sécurité des maisons adjacentes sont interconnectés, déclenchant une alerte de police si deux maisons contiguës sont cambriolées la ...
Publié le 31 juillet à 15h46
Minimiser les Zéros Finaux dans une Grille avec Programmation Dynamique
Piège Courant
Une erreur fréquente est de minimiser simultanément les facteurs 2 et 5 durant le parcours. Considérons cette grille :
2
1 125
10 8
Un chemin minimisant le minimum des deux facteurs produirait 3 zéros finaux, tanddis que la solution optimale n'en a que 2.
Solution Optimale
Définissons deux matrices DP :
dp_deux[i][j] : somme min ...
Publié le 29 juillet à 16h03
Programmation dynamique sur les chiffres
La programmation dynamique sur les chiffres permet d'exploiter la structure des nombres pour compter ou vérifier des propriétés sur des plages de valeurs. L'idée principale est de traiter les nombres chiffre par chiffre, souvent en partent du chiffre de poids fort.
Comptage des occurrences de chiffres dans un intervalle
Problème : Étant donné d ...
Publié le 29 juillet à 01h50
Solutions pour le CSP-J 2025
Problème 1 : Construction du nombre
Analyse de l'algorithme
L'objectif est de former le plus grand nombre entier possible à partir des caractères numériques extraits d'une chaîne donnée. Pour maximiser la valeur, il faut placer les chiffres les plus élevés dans les positions de poids le plus fort, c'est-à-dire au début de la séquence. Par exemp ...
Publié le 25 juillet à 03h41
Simulation NOIP 78 – Solutions et codes
Problème T1 : F
Raisonnement
Comme les tableaux a et b sont liés par une relation biunivoque, le nombre de candidats possibles est au plus n. Pour chaque valeur candidate, on vérifie en un seul parcours si elle réalise une correspondance parfaite entre a et b. On peut utiliser une tible de hachage, un map ou un multiset pour stocker les élément ...
Publié le 24 juillet à 01h42
Algorithmes pour les sous-chaînes palindromes en C++
Pour déterminer le nombre de sous-chaînes palindromes dans une chaîne, où chaque caractère individuel est également considéré comme une sous-chaîne palindrome, on peut utiliser la programmation dynamique. La stratégie consiste à identifier toutes les sous-chaînes palindromes et à les compter.
Compter les sous-chaînes palindromes avec la program ...
Publié le 21 juillet à 14h15