[PYTHON] Bis es mit AtCoder hellblau wird

Vorstellen

Hallo. Ich bin ein Universitätsstudent im dritten Jahr, der neulich ein hellblauer Programmierer geworden ist. Die Sprache ist Python und ich habe sie im Juni letzten Jahres (2019) begonnen. Ich bin nicht sehr gut darin, Sätze zu schreiben, aber ich hoffe, Sie werden es bis zum Ende sehen.

Hintergrund des Starts einer wettbewerbsfähigen Programmierung

Ich trat in die Universität ein und begann, Informationssysteme zu studieren, nahm im Oktober desselben Jahres grundlegende Informationen auf, wandte Informationen im April des folgenden Jahres an und fragte mich, was ich als nächstes studieren sollte, aber ein Freund ohne Informationssystem lernte Maschine mit Python. Ich fand, dass ich es alleine gemacht habe und es ist lächerlich. Ich fing an, Python zu studieren. Zu dieser Zeit wusste ich etwas über die Sprache Python, aber ich wusste nichts über die spezifische Grammatik, und in der Schule lernte ich eine weniger bekannte Sprache namens Processing, daher erinnere ich mich, dass ich mich sehr ungeduldig fühlte. Wenn nicht informationsbezogene Studenten mit dem Programmieren beginnen, sinkt ihr Marktwert! Dann baute ich schnell die Umgebung auf und begann Grammatik zu lernen. Obwohl ich richtig eingeben kann, gibt es keine Szene zum Ausgeben, deshalb habe ich nach anderen Programmierstudien-Sites wie Progate gesucht, aber als ich mich fragte, was passiert ist, weil nichts gut passt, mein Freund auf Twitter (Abgesehen von den oben genannten Freunden) antwortete er: "Möchten Sie Wettbewerbsprogramme machen?" Ich antwortete und gab vor, ruhig zu sein: "Was ist das?" Aber es ist definitiv interessant, ich liebe das Programmieren und ich liebe es, mit Menschen zu konkurrieren. Ich suchte hastig und fand AtCoder. Es dauerte nicht lange, bis man von dort aus in den Sumpf wettbewerbsfähiger Programme kam. Es ist eine Maschine geworden, um Probleme zu lösen.

Wissen, das Sie haben

BFS, DFS, Segmentbaum, DP, Dichotomie, Inverse, UnionFind, Dyxtra, Worshall Floyd und mehr. Ich habe Mathe in der Prüfung verwendet, daher habe ich ein Mindestwissen. Um ehrlich zu sein, denke ich, dass das einzige Wissen, das erforderlich ist, um hellblau zu werden, Dichotomie, BFS und DFS ist. Sie können wahrscheinlich gehen, wenn Sie sich der schnellen und genauen Lösung bewusst sind. Blau ist so unmöglich.

Was ich getan habe, bevor es hellblau wurde

Abschließend habe ich das Problem gelöst. Ich denke jedoch nicht, dass die Bemühungen immer in die falsche Richtung gerichtet sein sollten. Entweder wird es zuerst langweilig oder es werden zuerst Ergebnisse erzielt. Je leidenschaftlicher Sie im wettbewerbsorientierten Programmieren sind, desto mehr müssen Sie darüber nachdenken, wie Sie arbeiten sollen. Bei der Lösung eines Problems sind einige Dinge zu beachten. Im Folgenden werde ich in Worte fassen, was mir bewusst war.

Lernen Sie Algorithmen, die Sie nicht vor Ort kennen

Die Menschen erinnern sich nicht wirklich daran, was sie jetzt nicht brauchen. Im Gegenteil, was jetzt gebraucht wird, kommt oft reibungslos herein. Mit anderen Worten, ich denke, es ist effizient, die Algorithmen zu lernen, die Sie jetzt benötigen. Wenn Sie ein Problem lösen und einen Algorithmus finden, den Sie nicht verstehen, studieren Sie den Algorithmus, um das Problem zu lösen. Ich werde Wettbewerbsprogramme machen, nachdem ich Ameisenbücher gelesen und alle Algorithmen gelernt habe! Sie sollten wahrscheinlich aufhören.

Absolut umsetzen

Nach dem Lösen eines Problems gibt es Leute, die zum nächsten Problem übergehen, ohne es zu implementieren, nur weil es in ihrem Kopf getan wurde. Hören wir definitiv auch damit auf. Der erste Grund ist wahrscheinlich, dass es nicht implementiert werden kann. Viele der Probleme, die übersprungen werden, ohne implementiert zu werden, sind schwer zu implementieren, und es ist wahrscheinlich schwierig, sie bis zum Ende ohne Fehler zu implementieren. Der zweite ist Ineffizienz. Es gibt zwei Phasen, um das Problem zu lösen. Die erste ist die Überlegung. Es gibt eine Phase, in der darüber nachgedacht werden muss, welche Art von Algorithmus und Datenstruktur zur Lösung dieses Problems verwendet werden soll, und eine Phase, in der es tatsächlich in den Code eingefügt wird. Was die Erfahrung betrifft, gibt es viele Leute um mich herum, die die erste Phase machen können, aber nicht die zweite Phase. Mit anderen Worten, es gibt viele Leute, die in diesem Teil nicht genug Übung haben. Lassen Sie es uns implementieren. Was wir tun, ist kein Wettbewerbsüberlegungswettbewerb.

Lösen Sie ähnliche Probleme

Wie bei allem, wenn Sie BFS nicht können, können Sie es nicht tun, ohne das Problem von BFS zu lösen, und wenn Sie DP nicht tun können, können Sie es nicht tun, ohne das Problem von DP zu lösen. Es ist natürlich. Glücklicherweise wird das Problem erklärt und sollte Ihnen das Wissen vermitteln, das Sie zur Lösung benötigen. Lösen wir die ähnlichen Probleme, die Sie nicht lösen konnten.

Die Wichtigkeit wegzulaufen

Wenn Sie ein Problem haben, das Sie selbst nach dem Lesen der Erklärung nicht verstehen, lassen Sie uns entkommen. Wie ich bereits schrieb, ist es das erste, was langweilig wird oder das erste, das Ergebnisse erzielt? Selbst wenn Sie ein Problem verstehen können, das Sie selbst beim Lesen der Erklärung nicht verstehen können, kann es meiner Meinung nach einen oder drei Monate dauern, bis Sie es während des Wettbewerbs lösen können. Wenn ja, ist es definitiv schneller, Ergebnisse zu erzielen, wenn Sie sicherstellen, dass Sie die Probleme berücksichtigen, die Sie lesen, verstehen und implementieren können. Es gibt ein Wort, das ich in mir selbst schätze, und in den Worten des professionellen Spielers Daigo Umehara: "Ich bin nicht müde vom Spiel, ich bin es leid, nicht erwachsen zu werden." Lassen Sie uns zunächst oberste Priorität darauf legen, das Wachstum selbst spüren zu können.

Lass uns zum Wettbewerb gehen

Können Sie sich von nun an darauf konzentrieren, 100 Minuten lang zu lernen? Ich denke, dass es einige Leute gibt, die auf Nachfrage mit JA antworten können. Aber was ist mit? Als ich am Wettbewerb teilnahm, war ich sehr nervös. Ist es nicht so konzentriert, dass es unmöglich ist? Ich studiere diese Dichte jede Woche und ich kann nicht anders, als eine höhere Rate zu bekommen. Auch die Probleme, die ich während des Wettbewerbs nicht lösen konnte, sind sehr bedauerlich. Es wird dringend empfohlen, da Sie das Problem mit einer anderen Motivation lösen können, als wenn Sie das Problem normalerweise lösen.

Lassen Sie uns Menschen machen, die in unserer Nähe konkurrieren können

In meinem Fall war ich Senior und Professor, aber es ist in Ordnung, wenn ich nicht gegen meine Freunde oder Junioren verlieren möchte. Das wettbewerbsfähige Programmieren mit jemandem macht viel Spaß und bitte schätzen Sie die bedauerlichen Gefühle des Verlierens.

Schließlich

Es ist lange her, aber danke fürs Lesen. Ich denke, Sie sollten AtCoder auf jeden Fall verwenden, wenn Sie eine neue Sprache starten. (Ich habe kein Geld von AtCoder bekommen)

Recommended Posts

Bis es mit AtCoder hellblau wird
AtCoder Hellblau werden
Atcoder bis grün
Eine Geschichte, die in 4 Monaten nach dem Start von AtCoder mit Python hellblau wurde
Bis es mit virtualenv + flask + apache + wsgi funktioniert
Nach 9 Monaten Atcoder-Geschichte (Python) wurde es blau.
Löse AtCoder 167 mit Python
Ab dem Zeitpunkt, an dem ein Student AtCoder startet, bis es grün wird (Umgebungskonstruktion / Lernmethode)