0% ont trouvé ce document utile (0 vote)
5 vues9 pages

Guide complet sur la programmation compétitive

La programmation compétitive est un sport d'esprit où les participants résolvent des problèmes mathématiques ou logiques en écrivant des programmes informatiques, avec des jugements basés sur le nombre de problèmes résolus et le temps pris. L'Angola a récemment commencé à s'impliquer dans ce domaine, avec des compétitions pour les étudiants universitaires et du secondaire, et il est conseillé aux étudiants de participer pour améliorer leurs compétences en programmation. Les débutants sont encouragés à pratiquer sur des plateformes comme Hackerrank et Codeforces pour se familiariser avec les défis et les structures de données nécessaires à la compétition.

Traduit par

ScribdTranslations
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues9 pages

Guide complet sur la programmation compétitive

La programmation compétitive est un sport d'esprit où les participants résolvent des problèmes mathématiques ou logiques en écrivant des programmes informatiques, avec des jugements basés sur le nombre de problèmes résolus et le temps pris. L'Angola a récemment commencé à s'impliquer dans ce domaine, avec des compétitions pour les étudiants universitaires et du secondaire, et il est conseillé aux étudiants de participer pour améliorer leurs compétences en programmation. Les débutants sont encouragés à pratiquer sur des plateformes comme Hackerrank et Codeforces pour se familiariser avec les défis et les structures de données nécessaires à la compétition.

Traduit par

ScribdTranslations
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Tout ce que vous devez savoir sur la programmation compétitive.

La programmation compétitive est un sport d'esprit généralement pratiqué


sur internet ou un réseau local, impliquant les participants essayant
programar de acordo com especificações fornecidas. Os competidores são
référés comme des programmeurs de sport.

La compétition de programmation implique généralement l'hôte


présentant un ensemble de logiques ou de problèmes mathématiques pour les
concurrents (qui peut varier de dizaines à plusieurs milliers),
et les concurrents sont obligés d'écrire des programmes informatiques
capables de résoudre chaque problème. Le jugement est basé sur
principalement sur le nombre de problèmes résolus et le temps passé
pour écrire des solutions réussies, mais peuvent également inclure d'autres
facteurs (qualité de sortie produite, temps d'exécution, la taille de
programme, etc.)

L'Angola se qualifie pour la première fois au championnat africain de programmation

[Link]
LIRE LA SUITE :

pour-le-championnat-africain-de-programmation/
Les concours réputés au niveau de la programmation compétitive
normalement contemplent des étudiants universitaires (ex. ACM-ICPC), de
enseignement secondaire (exemple : IOI, USACO des États-Unis et plus). Cependant, il existe

também concursos abertos, onde qualquer um pode participar, como o


Concours de Hackers Facebook et TopCoder.

Il est extrêmement bénéfique, pendant la période de formation supérieure et


média, participer à des concours et acquérir des connaissances en programmation
par le biais de compétitions. En Angola, depuis l'année 2016, il y a eu
introduit la culture de la programmation compétitive, en 2016 certains
des étudiants universitaires ont participé à la phase régionale sud-africaine du
concours ACM-ICPC, en compétition avec des étudiants de plusieurs institutions
niveau de l'Afrique. Heureusement, l'intérêt pour a également augmenté
programmation compétitive au niveau du lycée où l'ITEL a été
le précurseur de l'entrée de l'IOI (Olimpiade Internationale d'Informatique)
en Angola.

1ère Édition de l'olympiade Angolaise d'informatique (Luanda) 2017.

LIRE PLUS :[Link]


L'idéal est que nos institutions, que ce soit au niveau supérieur ou moyen, se
intéressez et impliquez vos étudiants dans ce monde fantastique de
programmation compétitive, étant donné qu'il y a à gagner.

Comment la programmation compétitive bénéficiera à votre carrière ?

Vous pouvez très bien utiliser vos classements [atteints dans plusieurs
plateformes de programmation compétitive] dans votre CV pour montrer
comment vous vous démarquez parmi vos collègues ! (Croyez-le ou non, les
les recruteurs sont impressionnés de voir vos performances dans
plateformes en ligne).
Vous apprendrez comment aborder un problème de la meilleure façon possible,
vous apprendrez comment penser et résoudre analytiquement un problème et analyser
sa complexité d'espace et de temps.
Toute grande multinationale ou entreprise basée sur un produit préfère avoir
un tour de filtrage initial, qui consiste en des problèmes de
programmation compétitive.
Vous apprendrez un langage de programmation de bout en bout.
L'adrénaline que vous ressentirez après avoir vu la marque verte et votre nom dans
tableau de classement - il n'y a rien de comparable à cela.

[Link] un langage de programmation connu

Vous pouvez faire de la programmation compétitive dans n'importe quel langage.


programmation, mais il est fortement recommandé de choisir l'un parmi C/C++
ou Java. La raison en est que le temps d'exécution est un facteur clé dans
Compétition de Programmation et, par conséquent, choisir une langue dont le temps de
l'exécution rapide vous apportera certainement des avantages. C/C++ et Java
sont relativement plus rapides, principalement quand on les compare à
langages comme Python.
Il vaut mieux utiliser le C++ car c'est l'un des plus rapides en termes de temps.
de exécution et fournit de nombreuses fonctionnalités intégrées, c'est plus
amplement utilisé et a un soutien pour plusieurs structures de données par
au milieu de la STL (Standard Template Library), cependant, Java est également
une bonne décision, car elle prend en charge le BigInteger (la capacité de stocker
grands nombres sans les problèmes de débordement).

Si vous êtes un débutant en programmation, il est fortement recommandé que


vous pratiquez les bases d'un langage de [Link] pour ça
lien.

Commencer avec la programmation compétitive

Avant d'entrer dans le monde des compétitions, il serait préférable de se familiariser.


avec le style d'E/S (Entrée et Sortie) et avec la manière dont la
La codification se fait sur les plateformes en ligne;

Nous vous suggérons de :

Comece a praticar no Hackerrank, ele tem um ótimo IDE e um


un programme merveilleux pour les débutants, qui vous aidera à commencer. Le
Hackerrank a un grand ensemble de problèmes dont la difficulté
augmente progressivement et donc vous ne ferez pas face à une augmentation ou
une chute soudaine de difficulté, en plus de permettre de visualiser le cas de
test dans lequel le code a échoué, ce qui l'aidera beaucoup dans la création de
cas de test, ainsi que l'apprentissage du débogage du code pour le cas en
qu'il a échoué. En tant que débutant complet, il est important que vous puissiez voir le
cas de test qui a échoué, pour apprendre comment diriger ces cas
chant

Lorsque vous serez familiarisé avec le Hackerrank, ce serait bien.


se plonger un peu plus dans des problèmes un peu plus difficiles pour les
Quelque chose que vous pouvez chercher est le SPOJ. Le SPOJ n'est pas un site de programmation.

compétitive, mais se compose de plusieurs questions qui vous aideront à


apprendre la mise en œuvre de nombreuses nouvelles structures et algorithmes de
données. Si vous résolvez les 20 premiers problèmes sur le SPOJ, vous aborderez
des sujets comme les matrices, les chaînes, le tri et la recherche. Si vous résolvez
Les 50 premiers problèmes aborderont des sujets tels que la manipulation de bits,
recursividade, retorno, Graph.
Si vous résolvez les 100 premiers problèmes, vous aurez abordé des sujets
avancés comme Programmation Dynamique, Tas, Hachage, Tentatives et
arbres de segments.

Comme mentionné ci-dessus, essayez de commencer avec Hackerrank et de résoudre par


moins les 20 premiers problèmes pour avoir une idée de comment le
La programmation compétitive fonctionne.

Après avoir terminé les 20 premiers problèmes de Hackerrank, vous devez


passer au SPOJ et essayer de résoudre quelques problèmes ici aussi.

En guise d'observation, nous aimerions suggérer que, pendant que vous serez
en résolvant ces problèmes, ne vous attendez pas vraiment à leur conclusion
d'abord. Au lieu de cela, vous devez commencer à participer parallèlement
immédiatement dès que j'aurai une idée de comment l'E/S fonctionne,
pourquoi participer à des compétitions et rivaliser avec d'autres personnes est le
meilleure partie de la Programmation Compétitive.

Remarque : Pour ceux qui ont une petite idée des structures et des algorithmes
de données, vous pouvez pratiquer seulement les parties des étapes 3 et 4 ci-dessous,
avec lesquelles vous n'êtes pas familier.

3. Familiarisez-vous avec les structures de données

Encore une fois, rappelez-vous que notre objectif n'est pas de vous
mémorisez ces structures de données ou algorithmes à l'étape suivante, mais
montrer comment vous pouvez les mettre en œuvre dans des problèmes de la vie réelle.

Nous avons également ajouté quelques questions, ainsi que chaque sujet,
pour que vous puissiez avoir une expérience pratique sur comment appliquer lequel
structure de données dans quel problème.
Matrices et Vecteurs : une collection de types de données similaires est
appel de matrice. Les vecteurs sont aussi des matrices, mais quand
combinés avec les fonctions STL, ils s'avèrent beaucoup plus utiles que
une matrice dans la Programmation Compétitive. Voici quelques excellents
ressources pour comprendre les bases des matrices et des vecteurs en C++. Si vous
utiliser Java comme langage de programmation, vous pourrez faire une recherche
rapide sur Google pour trouver également les ressources Java équivalentes.

Mathématiques de base : problèmes de mathématiques de base et mise en œuvre sont


assez courants dans les concours et les entretiens. Par conséquent, il est conseillé
que vous ayez une idée des concepts fondamentaux de mathématiques.

Les chaînes : ce sont des collections de plusieurs caractères et peuvent être référées comme

une matrice de caractères. Les problèmes de chaîne sont assez courants dans
plusieurs concours de programmation et, en effet, les problèmes de chaîne sont
parmi les problèmes préférés des intervieweurs en technologie.

Pile : Une pile en portugais est une structure de données linéaire qui
suit un ordre spécifique dans lequel les opérations sont exécutées. Le
La commande peut être LIFO (dernier entré, premier sorti) ou FILO (premier entré, premier sorti)

et sortir). La pile suit LIFO.

Une file en portugais est une structure linéaire qui suit une
l'ordre spécifique dans lequel les opérations sont exécutées. La demande est le
primeiro a entrar, primeiro a sair (FIFO).

Carte : La carte est de loin l'une des structures de données les plus utiles. Il
peut être utilisé pour trouver, itérer, ajouter, supprimer des chiffres et
c'est aussi l'une des structures de données les plus utilisées.

4. Familiarisez-vous avec les algorithmes

Les algorithmes sont des logiques mises en œuvre dans diverses structures de données pour
obtenir la sortie désirée.
Complexité du temps/espace : tout algorithme a une complexité
de temps et d'espace qui se réfère à la quantité maximale de temps qu'un
l'algorithme nécessitera et à la quantité maximale de mémoire qu'un algorithme
exigira. Pendant la programmation compétitive, ces deux joueront
un rôle fondamental dans la détermination du verdict de sa solution.

Essayez toujours de penser à la solution la plus idéale, c'est-à-dire qui soit exécutée.
avec moins de complexité temporelle et occuper un espace minimal.

Classificação (Sorting):você deve ter ouvido falar de várias técnicas de


classification à classer, mais, pendant la Programmation
Competitiva, a maioria dessas técnicas consome muito tempo; portanto, a
la bibliothèque STL vient en aide, elle offre une fonction sort() qui classe
la matrice de la manière la plus idéale.

5.débutant avec de vraies compétitions en ligne

Après s'être familiarisé avec les complexités temporelles, les opérations


de E/S des IDE et des pénalités en ligne, vous pouvez commencer par
compétitions réelles, pour lesquelles les sites suivants fournissent le meilleur
environnement pour rivaliser avec d'autres personnes :

Codechef : Codechef propose trois concours mensuels auxquels vous pouvez participer.
participer et tester vos compétences :

Codechef Long : C'est un concours de 10 jours et c'est l'un des meilleurs


concours pour commencer la Programmation Compétitive, car il n'en possède pas
aucune pénalité pour une réponse incorrecte et offre beaucoup de temps pour
penser et mettre en œuvre votre solution pour un problème spécifique.

Cook-Off : c'est un concours beaucoup plus court, qui dure 2,5 heures et
présente 5 problèmes de difficulté variable. Ce concours enseignera
comment penser et mettre en œuvre une solution dans un domaine donné
restriction de temps.
Codeforces : Codeforces sépare les utilisateurs en trois catégories : Div1,
Div2, Div3.
Comece resolvendo os problemas da Div 3 primeiro. A Codeforces oferece
vários concursos em um mês e você pode até tentar iniciar um concurso
virtuel, si vous le souhaitez. Ne soyez pas démotivé si vous avez du mal à résoudre
mais de 2,3 problèmes ou même un seul problème pendant un
concours, quand le concours est terminé, consultez les tutoriels du problème
que vous n'avez pas pu résoudre et puis résolvez-le.

Codeforces est également bon pour les débutants, car il aide également à
analyser les cas de test pour lesquels votre solution a échoué et, par votre
vez, aide à déboguer et à apprendre à créer vos propres cas de test pour
d'autres problèmes futurs.

L'upsolving est l'aspect principal de l'amélioration de soi ; observez aussi


les codes d'autres programmeurs, car cela vous aidera à améliorer votre
propre style de codage.

En tant que débutant, vous ne devez jamais vous soucier du classement, car
c'est votre plus grande barrière pour vous efforcer davantage et résoudre des problèmes
en dehors de votre zone de confort lors d'une compétition. Même si votre
la classification est en train de chuter, cela ne signifie pas que vous ne soyez pas
améliorant ; la classification est relative à d'autres personnes et n'est pas unique
série de ce que vous pouvez faire.

Résolvez le maximum possible, mais ne vous découragez pas si vous ne parvenez pas à résoudre.

un problème après la fin du concours, regardez le tutoriel et lisez


aussi le code d'autres participants pour apprendre le style et le
modèle de codage des autres.

[Link] Pratique Pratique

Les gens disent que la pratique perfectionne l'homme, mais dans le monde de
Programmation Compétitive, personne n'a jamais atteint ce niveau, non
importa o quanto pratique, sempre sentirá falta de algo, mas essa é a
partie glorieuse de la Programmation Compétitive que tu ne fais jamais.
Ne perdez pas espoir et continuez à essayer et à envoyer jusqu'à obtenir le signal
vert, car fais-moi confiance quand je dis cela, puisque le feu vert est
l'un des meilleurs sentiments du monde.

Lisez aussi sur les championnats du monde organisés par plusieurs


organisations de prestige, comme ACM, Google, Facebook, Coupe Vk,
SnackDown est l'un des meilleurs moyens de décrocher un entretien de
un emploi avec des entreprises comme celles-ci est la Programmation Compétitive et le

bonnes performances dans les compétitions organisées par eux. Mais, avant de
Tout, lève-toi de ce canapé et commence à aimer le sport.

Vous aimerez peut-être aussi