[PYTHON] Atcoder bis grün

Vorstellen

スクリーンショット 2020-02-23 15.22.15.png

1. Bis Sie Atcoder starten

Die Motivation für den Start war, als ich mich fragte, ob ich wegen der beengten menschlichen Beziehungen bei der Arbeit wirklich aufhören sollte. Dann dachte ich, dass es schön wäre, einen Job zu haben, bei dem ich mit meinen technischen Fähigkeiten konkurrieren könnte, und begann mit der Idee zu programmieren, "was ich noch tun kann". Ich kam an. Allerdings kannte ich das "p" der Programmierung nicht und hatte nichts, was ich machen wollte. Als ich mich fragte, was ich tun sollte, empfahl mein Senior am College Atcoder. Ich war ziemlich gut darin, für Prüfungen zu lernen (obwohl die Mathematik im Zentrum sowohl für IA als auch für IIB bei etwa 80 Punkten liegt), daher dachte ich, dass das Lösen von Problemen und das Erhöhen oder Verringern der Rate eine für mich passende Lernmethode ist. ..

2. Frust

Ich wusste nichts über die erste Sprache und entschied mich daher für Atcoders wichtigstes C ++, wie empfohlen. Die Grammatik war jedoch kompliziert und es gab viele Regeln wie die sogenannte "Magie", so dass ich den Punkt nicht erreichen konnte, an dem ich das Problem leicht lösen konnte. Seitdem mache ich seit ungefähr einem halben Jahr nichts mehr.

3. Bis zur Auferstehung

Ich hatte zufällig die Gelegenheit, mit einem Ingenieur-Kunden bei der Arbeit zu interagieren, und als ich ihm sagte, dass ich mit der wettbewerbsfähigen Programmierung in C ++ frustriert war, sagte er: "Warum versuchen Sie es dann nicht noch einmal in Python? Ich hatte nicht genug Energie, um jede Woche als Hobby Rad zu fahren, also war ich frei und startete neu. Dieses Mal habe ich einen Python-Kurs in Paiza absolviert, damit mich die Grammatik nicht frustriert, und dann habe ich begonnen, das Problem zu lösen. Wenn Sie jedoch ein großes Programm schreiben, müssen Sie möglicherweise Klassen und Instanzen ausführen. Mit Atcoder reicht es jedoch aus, Funktionen auszuführen. Ich denke, es ist besser, das Problem zu lösen. Wenn Sie mit C ++ frustriert sind, denken Sie, Sie wurden getäuscht, und versuchen Sie es erneut mit Python.

4. Bis zu braun

スクリーンショット 2020-02-23 18.19.40.png

Es schien mühsam zu sein, die Umgebung aufzubauen, und es war dumm, frustriert zu sein. Deshalb schrieb ich den Code in die Online-Umgebung von paiza, bis er grün wurde. Https://paiza.io/ja Bis es braun wurde, habe ich nur das B-Problem ausgefüllt. Anfangs hat es lange gedauert, aber als ich mich daran gewöhnt hatte, schien mir die Lösung in fast kürzester Zeit zu kommen, und dann habe ich sie einfach implementiert. Ich habe in einem Monat ungefähr 50 Fragen ausgefüllt und sie einfach geschrieben. Als nächstes hörte ich ein Gerücht, dass "Arimoto gut ist", und kaufte es jetzt wieder, also AtCoder-Version! Arimoto (Anfänger) wurde bereits gefüllt. Ich konnte die ganze Suche und Gier verstehen, aber ich war völlig verstopft mit DFS und BFS und gab einmal auf und fing an, das C-Problem auszufüllen, und währenddessen wurde es braun.

5. Bis zu grün

スクリーンショット 2020-02-23 19.33.42.png

Ich dachte, es wäre einfach, von Braun zu Grün zu wechseln, aber ich kämpfte unerwartet (tatsächlich dachte ich, dass es im letzten Wettbewerb um Braun mit einer Leistung von über 1000 eine Frage der Zeit war). Denn ab etwa Oktober 2019 ist das Niveau um mich herum deutlich gestiegen, und die Leistung ist gegenüber zuvor um etwa 150 gesunken. Außerdem nahm ich mir manchmal Zeit für ein einfaches Problem und gab manchmal eine Leistung von ungefähr 400, was dazu führte, dass die Rate ins Stocken geriet. Also dachte ich über "Angriffskraft" nach, um schwierige Probleme zu lösen, "Verteidigungskraft", um einfache Probleme schnell zu lösen, und es ist schwierig, die Angriffskraft zu erhöhen. Erhöhen Sie also zuerst die Verteidigungskraft. Ich habe es versucht. Als eine neuere Problemtendenz ist das C-Problem einfacher geworden, und die braune Schwierigkeit (das Problem der Schwierigkeit 400 bis 800 im Atcoder-Problem) wird übersprungen, und das Problem der grün / hellblauen Schwierigkeit tritt oft plötzlich auf. (Von ABC140 bis ABC156 hat der Schwierigkeitsgrad Braun 5 Fragen, der Schwierigkeitsgrad Grün 11 Fragen und der Schwierigkeitsgrad Hellblau 13 Fragen). Es gibt viele Sets, die keine braunen Probleme haben. Wenn Sie nicht in der Lage sind, grüne Probleme zu lösen, ist die Beschleunigung grauer Probleme der schnellste Weg zu grün. Die einzige Möglichkeit, Ihre Verteidigungsstärke zu verbessern, besteht darin, sich viel zu widmen, aber hier sind einige Dinge, die ich an anderer Stelle versucht habe.

Einführung einer lokalen Umgebung

Ich bin seit langem der Online-Umgebung von Paiza verpflichtet, habe mich aber nie dazu entschlossen, eine lokale Umgebung aufzubauen. Gleichzeitig haben wir den Atcoder-Komponententest https://qiita.com/YujiSoftware/items/00ce688ce5dde627ec36 eingeführt, der die Funktionsprüfung der Probleme A und B erheblich verbessert hat. Schließlich hat die lokale Umgebung Vorteile wie prädiktive Eingaben, Vorlagen und das Auffinden von Fehlern. Ich denke, es ist besser, so schnell wie möglich in die lokale Umgebung zu wechseln (ich habe sie noch gar nicht gemeistert). Ich benutze übrigens Pycharm.

Siehe Beispiel 1 schnell, ohne das Problem zu laden

Bis zum C-Problem ist es oft schneller, den Problemsatz zu scannen und das Beispiel zu sehen, um ein Gesamtbild des Problems zu erhalten, auch wenn Sie den Problemsatz nicht verstehen. Wenn Sie nach D die Einschränkungen nicht sorgfältig lesen, werden Sie häufig erwischt. Lesen Sie sie daher sorgfältig durch.

Nutzung des virtuellen Wettbewerbs

Wenn die Intervalle zwischen den Wettbewerben zunehmen, nehmen Geschwindigkeit und Motivation ab. Deshalb habe ich regelmäßig virtuelle Wettbewerbe mit meinen Kollegen durchgeführt, um die Geschwindigkeit zu verbessern und die Motivation aufrechtzuerhalten.

Selbst wenn ich versagte, konnte ich weiterhin am Wettbewerb teilnehmen und wurde grün.

6. Weitere nützliche Tipps für Python-Krieger

Collection.Counter, most_common () -Methode

Diese Bibliothek ist wirklich vielseitig. Verwendung dieses Artikels. https://note.nkmk.me/python-collections-counter/ Wenn Sie dies wissen, haben Sie ungefähr alle fünf Male ein Problem, das Sie sofort töten können.

Die Magie, die die Eingabe etwas beschleunigt

import sys  input = sys.stdin.readline

Fügen Sie diese beiden Zeilen ganz am Anfang hinzu und die Geschwindigkeit erhöht sich um ca. 10%. Ich bin mir nicht sicher warum. Dieser Artikel ist leicht über kleine Geschwindigkeitsverbesserungen zu verstehen. https://www.kumilog.net/entry/python-speed-comp

7. Am Ende

Dieses Mal war der Haupttrend, Profis mit Halbwettbewerben zu machen, aber sobald ich hellblau bin, möchte ich einen zusammenhängenden Artikel schreiben, der mir hilft, das Problem ein wenig mehr zu lösen.

Recommended Posts

Atcoder bis grün
[Python] Jetzt ein grüner Codierer ~ [AtCoder]
atCoder 173 Python
AtCoder ABC176
Fordern Sie AtCoder heraus
Bis es mit AtCoder hellblau wird
AtCoder 174 BCD
AtCoder ABC177
[Fenwick_Tree] AtCoder Library liest mit einem grünen Codierer ~ Implementierung in Python ~