Bonjour. Je suis un étudiant de troisième année à l'université qui est devenu codeur bleu clair l'autre jour. Le langage est python, et je l'ai commencé en juin de l'année dernière (2019). Je ne suis pas très doué pour écrire des phrases, mais j'espère que vous le verrez jusqu'à la fin.
Je suis entré à l'université et j'ai commencé à étudier les systèmes d'information, j'ai pris des informations de base en octobre de la même année, appliqué des informations en avril de l'année suivante et je me suis demandé quoi étudier ensuite, mais un ami non-système d'information a appris la machine avec python J'ai trouvé que je le faisais tout seul, et c'est ridicule. J'ai commencé à étudier le python. A cette époque, je connaissais le langage python, mais je ne savais rien de la grammaire spécifique, et à l'école j'apprenais un langage moins connu appelé Processing, donc je me souviens m'être senti très impatient. Si des étudiants de premier cycle non liés à l'information commencent à programmer, leur valeur marchande diminuera! Ensuite, j'ai construit rapidement l'environnement et j'ai commencé à étudier la grammaire. Cependant, bien que je puisse entrer correctement, il n'y a pas de scène à sortir, j'ai donc cherché d'autres sites d'étude de programmation tels que Progate, mais quand je me demandais ce qui s'était passé parce qu'il n'y avait rien qui allait bien, mon ami sur Twitter (Mis à part les amis ci-dessus), il a répondu: "Faites-vous de la programmation compétitive?" J'ai répondu, faisant semblant d'être calme, "Qu'est-ce que c'est?" Mais c'est vraiment intéressant, j'adore la programmation et j'aime rivaliser avec les gens. J'ai cherché à la hâte et j'ai trouvé AtCoder. Il n'a pas fallu longtemps pour entrer dans le marais de la programmation concurrentielle à partir de là. C'est devenu une machine à résoudre les problèmes.
BFS, DFS, arborescence de segments, DP, dichotomie, inverse, UnionFind, Dyxtra, Worshall Floyd et plus. J'ai utilisé les mathématiques à l'examen, donc j'ai un minimum de connaissances. Cependant, pour être honnête, je pense que les seules connaissances requises pour devenir bleu clair sont la dichotomie, BFS et DFS. Vous pouvez probablement y aller si vous connaissez la solution rapide et précise. Le bleu est impossible de cette façon.
En conclusion, j'ai résolu le problème. Cependant, je ne pense pas que les efforts doivent toujours être dirigés dans la mauvaise direction. C'est soit s'ennuyer en premier, soit obtenir des résultats en premier. Plus vous êtes passionné par la programmation compétitive, plus vous devez réfléchir à la façon de travailler. Il y a quelques points à prendre en compte lors de la résolution d'un problème. Dans ce qui suit, je vais mettre en mots ce dont j'étais conscient.
Les humains ne se souviennent pas vraiment de ce dont ils n'ont pas besoin maintenant. Au contraire, ce dont nous avons besoin maintenant arrive souvent sans heurts. En d'autres termes, je pense qu'il est efficace d'apprendre les algorithmes dont vous avez besoin maintenant. Si vous résolvez un problème et trouvez un algorithme que vous ne comprenez pas, étudiez l'algorithme pour résoudre le problème. Je vais faire des programmes de compétition après avoir lu des livres de fourmis et appris tous les algorithmes! Vous devriez probablement arrêter.
Après avoir résolu un problème, il y a des gens qui passent au problème suivant sans le mettre en œuvre simplement parce que cela a été fait dans leur esprit. Arrêtons définitivement cela aussi. La première raison est probablement qu'elle ne peut pas être mise en œuvre. Beaucoup de problèmes ignorés sans être implémentés sont lourds à implémenter, et il est probablement difficile de les implémenter jusqu'au bout sans bogues. Le second est l'inefficacité. Il y a deux phases pour résoudre le problème, la première est la considération. Il y a une phase pour réfléchir au type d'algorithme et de structure de données à utiliser pour résoudre ce problème, et une phase pour l'intégrer réellement dans le code. Quant à l'expérience, il y a beaucoup de gens autour de moi qui peuvent faire la première phase mais pas la deuxième phase. En d'autres termes, il y a beaucoup de gens qui n'ont pas assez de pratique dans ce domaine. Mettons-le en œuvre. Ce que nous faisons n'est pas un concours de considération pour la concurrence.
Comme pour tout, si vous ne pouvez pas faire de BFS, vous ne pouvez pas le faire sans résoudre le problème de BFS, et si vous ne pouvez pas faire de DP, vous ne pouvez pas le faire sans résoudre le problème de DP. C'est naturel. Heureusement, le problème est expliqué et devrait vous donner les connaissances nécessaires pour le résoudre. Résolvons les problèmes similaires que vous ne pouvez pas résoudre.
Si vous avez un problème que vous ne comprenez pas même après avoir lu l'explication, échappons-nous. Comme je l'ai écrit plus tôt, est-ce la première chose à s'ennuyer ou la première à obtenir des résultats? Même si vous pouvez comprendre un problème que vous ne pouvez pas comprendre même si vous lisez l'explication, je pense qu'il faudra peut-être un mois ou trois mois avant que vous puissiez le résoudre pendant le concours. Si tel est le cas, il est certainement plus rapide d'obtenir des résultats si vous vous assurez de prendre en compte les problèmes que vous pouvez lire, comprendre et implémenter. Il y a un mot que je chéris en moi, et selon les mots du joueur professionnel Daigo Umehara: "Je ne suis pas fatigué du jeu, je suis fatigué de ne pas grandir." Tout d'abord, accordons la priorité absolue à la capacité de ressentir la croissance par vous-même.
Pouvez-vous vous concentrer sur une étude de 100 minutes à partir de maintenant? Je pense qu'il y a pas mal de gens qui peuvent répondre OUI lorsqu'on leur demande. Mais qu'en est-il? Quand j'ai participé au concours, je pense que j'étais très nerveux. N'est-ce pas si concentré que c'est impossible? J'étudie cette densité chaque semaine et je ne peux pas m'empêcher d'obtenir un taux plus élevé. De plus, les problèmes que je n'ai pas pu résoudre pendant le concours sont assez regrettables. Il est fortement recommandé car vous pouvez résoudre le problème avec une motivation différente de celle lorsque vous résolvez normalement le problème.
Dans mon cas, j'étais senior et professeur, mais ce n'est pas grave si je ne veux pas perdre contre mes amis ou mes juniors. La programmation compétitive avec quelqu'un est très amusante, et chérissez les sentiments regrettables de perdre.
Cela fait longtemps, mais merci d'avoir lu. Je pense que vous devriez certainement utiliser AtCoder lorsque vous démarrez une nouvelle langue. (Je n'ai pas reçu d'argent d'AtCoder)
Recommended Posts