[PYTHON] Re: Vie de programmation compétitive à partir de zéro Pour que les débutants puissent obtenir des performances encore un peu plus élevées ~ ABC154 ~ 156 avec impressions ~

ça fait longtemps. J'ai reçu ABC154.155.156 avant de poster pendant plus de 2 semaines. 154 a été résolu jusqu'à C et la performance était de 104, 155 jusqu'à B 135 et 156 jusqu'à C 354.

... C'est assez difficile, mais les performances se sont progressivement améliorées.

Et cette fois, j'écrirai avec beaucoup de préjugés comment améliorer autant que possible les performances par la technique de la lame de cuisson, pas la capacité de programmation, que j'ai ressentie après avoir expérimenté ABC un total de 3 fois en tant que débutant d'AtCoder.

La rapidité pour terminer la résolution du problème C est importante

La bataille a déjà commencé avant le début du concours! !! Selon le niveau de difficulté de cette époque, les débutants finissent souvent de résoudre le problème C (probablement), de sorte que la population est concentrée dans cette zone. Donc, si vous résolvez ce problème C tôt, les performances s'amélioreront. Si vous résolvez le problème C d'ABC156 en 25 minutes, les performances sont d'environ 600, si vous le résolvez en 40 minutes, elles sont d'environ 350 et si c'est la dernière minute, elles sont d'environ 100.

Au fait, si vous le résolvez en 15 minutes, il dépassera 800. C'est une performance dite verte. Lol

15 minutes sont pénibles, mais même un débutant peut théoriquement devenir un codeur de thé tant que vous pouvez continuer à résoudre jusqu'à C dans une certaine mesure.

Ensuite, c'est une histoire de comment le résoudre rapidement. À partir de ce qui suit, j'écrirai une méthode comme une lame de cuisson pour les débutants comme moi pour résoudre rapidement les problèmes en C.

Mettez l'exemple d'entrée dans un test de variable et de code

C'est très important. AtCoder sera pénalisé de 5 minutes si le code soumis est incorrect (cela affectera considérablement le classement)

Vous qui pensiez: "Si vous faites des tests de code un par un, vous perdrez du temps"! !! Je surestime les débutants.

Bien sûr, les débutants ne sont pas habitués à écrire du code, il existe donc de nombreuses fautes d'orthographe et de syntaxe. Et le code soumis sera retourné dans RE et vous serez pénalisé.

Nous vous recommandons vivement de tester correctement le problème A. Au fait, j'ai beaucoup soumis à ABC154 et j'ai pris une pénalité de 45 minutes. Lol

Lisez attentivement le texte de l'exemple d'entrée

Les débutants ne savent pas ce qu'ils disent en lisant uniquement le texte de la question, en particulier à partir de la question C. Lol Cependant, si vous lisez le texte de l'exemple d'entrée puis revenez au texte de la question, cela peut vous venir facilement à l'esprit.

Il est recommandé car il peut être compris plus rapidement que de relire l'énoncé du problème.

Utiliser une copie

C'est génial. Lol Mais il est nécessaire d'améliorer encore un peu les performances. Teintons ici le mal. Lol En particulier, il est recommandé de copier et coller des fonctions car il ne réécrit que les arguments au moment de la sortie.

Ensuite, lorsque le concours est terminé, examinez de plus près le contenu du code copié et étudiez-le. ** Le copier-coller est un emprunt de connaissances à l'avance! !! ** **

J'ai également copié et collé une fonction qui convertit un nombre décimal en un nombre n-aire dans ABC156, donc je vais l'étudier. Lol

Dessinez un diagramme dans un cahier

Dans de nombreux cas, le problème C ne peut être résolu sans un peu d'inspiration mathématique. Mais c'est une chance! !! Vous pouvez le soumettre à une vitesse explosive tant que vous avez une inspiration. https://atcoder.jp/contests/abc156/tasks/abc156_c En prenant ce problème ABC156 C comme exemple, l'énoncé du problème dit que la valeur minimale est désagréable, mais à la fin, il est seulement nécessaire de trouver le milieu des coordonnées, donc si vous pouvez le remarquer, vous pouvez le résoudre en un instant.

Puisque ce que vous faites est la même chose que les mathématiques, cela aide à vous inspirer en écrivant divers chiffres dans votre cahier.


N = int(input())
X = list(map(int,input().split()))
P = sum(X)/len(X)
P = round(P)
count = 0
for i in range(N):
  count += (X[i] - P)**2
print(count)

Le code est simple, de sorte que même les débutants peuvent l'écrire immédiatement lors de la recherche. C'est vraiment juste une inspiration.

En parlant si fièrement, j'ai oublié que le point P est une valeur entière et j'ai pris une pénalité de 15 minutes ()

finalement

Voici comment les débutants d'AtCoder peuvent obtenir des performances encore un peu plus élevées avec une lame de cuisson, mais la chose la plus importante à dire est ** "Je vais perdre mes erreurs" **. C'est tout ce qu'on peut en dire.

Et comme cet article a été écrit sur la base de mes préjugés en tant que débutant dans la programmation compétitive, merci de bien vouloir préciser si vous n'avez pas l'intention de toucher l'échelle inverse du programme compétitif. (_ _) m

Recommended Posts

Re: Vie de programmation compétitive à partir de zéro Pour que les débutants puissent obtenir des performances encore un peu plus élevées ~ ABC154 ~ 156 avec impressions ~
Re: Durée de vie de la programmation compétitive à partir de zéro Chapitre 1.3 "Side tea"
Re: La vie d'Heroku à partir de zéro avec Flask ~ PhantomJS à Heroku ~
Re: Vie de programmation compétitive à partir de zéro Chapitre 1.2 "Python of tears"
Objet: Vie de programmation compétitive à partir de zéro Chapitre 1 1 "Seul C ++ peut être utilisé"
[Pour les débutants des professionnels de la compétition] Trois méthodes de saisie à retenir lors du démarrage de la programmation de compétition avec Python
[Pour les débutants] Re: Algorithme génétique partant de zéro [Intelligence artificielle]
Re: La vie Heroku à partir de zéro avec Flask ~ Selenium & PhantomJS & Beautifulsoup ~
Essayez de créer un logiciel de capture aussi précis que possible avec python (2)
[Pour les débutants] Web scraping avec Python "Accédez à l'URL de la page pour obtenir le contenu"