Il a fait ses débuts en Python pour la programmation compétitive le 22 août 2020. Participant était AtCoder, qui vient à l'esprit quand il s'agit de la programmation compétitive au Japon.
Avant de commencer à apprendre Python, je me suis inscrit en tant que membre et j'étais prêt à commencer. Quand avez-vous résolu les questions précédentes? ?? J'ai gardé que j'ai doucement enregistré avec AtCoder dans la salle de stockage de mon cœur.
La raison est simple.
** Parce que je suis tombé sur la partie d'entrée standard en Python en premier lieu orz **
Bien sûr, j'avais lu le livre d'introduction sur Python à ce moment-là, donc je savais que je devais utiliser input comme méthode d'entrée. Cependant, ma compréhension de la contribution était extrêmement insuffisante.
En parlant d'entrée, il apparaîtra dans les chapitres 1 et 2 après la configuration de l'environnement dans Python Primer. Je m'abstiendrai de l'exemple de code, mais l'exemple de code qui produit une telle sortie est publié.
$:Entrez le texte! : ○○
$:salut! ○○
Même si vous passez aux chapitres suivants, vous avez tendance à étudier d'autres contenus plutôt que d'apprendre diverses façons d'utiliser les entrées. En conséquence, même si je connaissais les entrées, je ne les comprenais pas. Je l'ai défié à des programmes compétitifs et j'en ai été mis au courant. En un clin d'œil, ma tête s'est figée et j'ai fermé l'onglet AtCoder ...
Pendant ce temps, en augmentant les chances d'écrire correctement le code, j'étais motivé pour essayer à nouveau la programmation compétitive, alors je suis retourné à AtCoder à nouveau.
** "Même si je ne sais pas cette fois, je vais essayer de google sans me figer." **
Dans cet esprit, lorsque j'ai étudié en profondeur la méthode de saisie, j'ai pu résoudre les problèmes A et B. Le problème C lutte avec la quantité de calcul O (N ^ 2) et souffre du mur "TLE" qui dépasse la limite de temps ...
Pendant ce temps, il s'est avéré que «l'entrée standard» de la partie d'introduction sur laquelle je suis tombé par hasard et que j'ai jeté était principalement résumée dans les trois suivantes. ** **
a = int(input())
Un modèle avec un entier entré sur une ligne. Le problème B du concours AtCoder Beginner Contest 176 du 22 août 2020 était ce modèle. Cependant, il y a peu de cas où un seul entier est entré, et il y a de nombreux cas où les questions sont fondamentalement combinées avec les deux modèles décrits plus loin.
a,b,c = map(int,input().split())
Il s'agit d'un modèle dans lequel le nombre d'entiers à saisir augmente et devient multiple. Le problème dans AtCoder Beginner Contest 176 était ce modèle. Lors de la saisie de plusieurs entiers sur une ligne, split () est intégré afin qu'ils puissent être séparés par des espaces.
A = list(map(int,input().split()))
Si vous n'avez pas décidé du nombre à saisir, enregistrez les entiers saisis dans la liste. Le problème C dans AtCoder Beginner Contest 176 était une combinaison d'une seule entrée entière et d'une liste d'entrées entières.
En apprenant ces trois méthodes d'entrée, vous pouvez éviter l'entrée standard, qui est la première pierre d'achoppement dans la programmation concurrentielle. Bien sûr, il existe de nombreux autres formats d'entrée, mais si vous les utilisez trop, votre tête surchauffera. ** Il est également important de déclarer fièrement que vous ne vous en souvenez plus. ** **
Évitez la première pierre d'achoppement "entrée standard" dans la programmation de compétition avec les trois suivants
#Entrez un entier
a = int(input())
#Entrez plusieurs entiers
a,b,c = map(int,input().split())
#Entrez un entier sous forme de liste
A = list(map(int,input().split()))
Si vous pouvez résoudre les problèmes A et B, vous serez motivé pour faire une programmation compétitive!