Voici quelques ressources qui pourront vous aider pour les problèmes.
“Stratégies de recherche” dans le cours de programmation compétitive dispensé par Antoine Amarilli. Les deux premières sections (bruteforce et backtracking) sont particulièrement pertinentes pour les problèmes ci-dessous.
“Problem Solving Paradigms” dans le cours de programmation compétitive dispensé par Bjarki Ágúst Guðmundsson. Introduit des outils de la bibliothèque standard de C++ et Python utiles pour la recherche exhaustive.
Chapitre 15 du livre “Programmation efficace” de C. Dürr et J.-J. Vie, notamment la section 15.4 pour l’énumération de permutations.
Les problèmes suivants sont triés par ordre croissant de difficulté.
“Heir’s Dilemma” — Calculez le nombre d’entiers à l’intérieur d’un intervalle qui peuvent potentiellement déverrouiller un cadenas aux spécifications données.
“Closest Sums” — Dans un ensemble, trouvez une paire d’entiers dont la somme est la plus proche possible du nombre demandé.
“Kitchen Measurements” — Étant donné un ensemble de tasses pouvant chacune mesurer un certain volume, trouvez une façon de mesurer le volume demandé.
“Card Hand Sorting” — Vous devez trier une main de cartes qui vous a été donnée. Pour ce faire, vous déplacez une carte à la fois à la position souhaitée. Quel est le nombre minimum d’opérations nécessaires pour trier votre main par couleur et dans l’ordre des valeurs?
“Rubik’s Revenge in … 2D!? 3D?” — Considérez une variante du Rubik’s Cube qui se joue sur un tore (donut). Quel est le nombre minimum d’opérations qui permet de résoudre une configuration donnée?