Compétition Mensuelle de Mai 2023 de la Shanghai Computer Society

T1 : Tri par Ordre Croissant (II) Limite de Mémoire : 256 MoLimite de Temps : 1000 ms Description du Problème : Étant donné une permutation de longueur n, à chaque opération, vous pouvez sélectionner un élément et le déplacer au début ou à la fin. Détermniez le nombre minimum d'opérations nécessaires pour transformer la permutation en une séque ...

Publié le 2 juillet à 04h15

Exercices Pratiques sur les Manipulations de Listes et Tuples en Python

Exercice 1 : Création et initialisation d'une liste Générez une liste vide appelée donnees_utilisateurs et insérez-y les éléments conducteur_principal, precipitation, jacques, shanshan, peqi, utilisateur_feminin. donnees_utilisateurs = ["conducteur_principal", "precipitation", "jacques", "shanshan", &quot ...

Publié le 30 juin à 19h05

Algorithmes de listes chaînées : suppression, conception et inversion

Les listes chaînées sont une structure de données fondamentale en informatique. Cet article examine trois techniques clés : la suppression d'éléments, la conception complète d'une liste et l'inversion d'une liste chaînée. Suppression d'éléments dans une liste chaînée Le but est de retirer tous les nœuds dont la valeur correspond à un paramèt ...

Publié le 30 juin à 17h00

Arbres de Segments : Principes Fondamentaux et Opérations Avancées

L'arbre de segments (Segment Tree) est une structure de données avancée, basée sur le principe de diviser pour régner. Il s'agit d'une structure arborescente binaire principalement conçue pour résoudre des problèmes d'intervalle ou de plage. Cette structure permet de maintenir des variables qui satisfont la propriété d'associativité (comme le m ...

Publié le 28 juin à 03h13

Algorithme de vérification de l'isomorphisme de deux arbres binaires

L'isomorphisme d'arbres est un concept fondamental en structures de données. Deux arbres binaires, T1 et T2, sont dits isomorphes si l'on peut transformer T1 en T2 en échangeant, pour un nombre quelconque de nœuds, leurs enfants gauche et droit. Cet article présente une approche systématique pour résoudre ce problème en utilisant une représenta ...

Publié le 28 juin à 02h38

Application de l'Union-Find pour résoudre des problèmes de vérité et de relations alimentaires

L'Union-Find est une structure de données efficace pour gérer des ensembles disjoints, souvent utilisée pour modéliser des relatoins entre éléments. Dans cet article, nous explorons son application à deux problèmes classiques : la détermination du nombre maximum de héros dans un scénario de vérité et de mensonge, et la vérification de relations ...

Publié le 26 juin à 22h57

Maîtrise des fondamentaux de la programmation Python

Configuration de l'encodage Bien que Python 3 utilise par défaut l'encodage UTF-8, il est parfois nécessaire de spécifier explicitement l'encodage des fichiers sources pour garantir la compatibilité, notamment lors de l'utilisation de caractères spéciaux. On insère alors cette ligne en tout début de script : # -*- coding: utf-8 -*- Structures ...

Publié le 26 juin à 21h22

PTA Structures de Données et Algorithmes – 7-4 : Même arbre binaire de recherche ?

Étant donné une séquence d'insertion, on peut construire un unique arbre binaire de recherche. Cependant, un même arbre binaire de recherche peut être obtenu à partir de plusieurs séquences d'insertion différentes. Par exemple, les séquences {2, 1, 3} et {2, 3, 1} insérées dans un arbre binaire de recherche initialement vide donnent le même rés ...

Publié le 24 juin à 04h07

Les cinq structures de données fondamentales de Redis

Le type String (Chaîne de caractères) String est la structure de données la plus basique de Redis. Elle peut stocker jusqu'à 512 Mo de données et est binaire-safe, ce qui signifie qu'elle peut contenir n'importe quel type de données : un nombre, une image sérialisée, un objet, etc. Commandes courantes : SET, GET, APPEND, STRLEN La commande A ...

Publié le 24 juin à 02h04

Implémentation de listes doublement chaînées en C++, C# et Java

Structure de données de liste doublement chaînée La liste doublement chaînée est une structure de données fondamentale où chaque élément contient des références vers les nœuds précédents et suivants. Cette structure permet un parcours bidirectionnel et des opérations d'insretion/suppression efficaces aux deux extrémités. Implémentation en C++ V ...

Publié le 24 juin à 01h49