Es ist ein Artikel nach dem Titel. Ich habe AtCoder im September gestartet und es wurde neulich bei AGC41 hellblau. Ich dachte, ich würde zusammenfassen, was ich bisher in diesem Bereich getan habe, also werde ich es als Artikel schreiben. Ich weiß nicht, ob es für alle hilfreich sein wird.
――Sie haben die Junior High School Prüfung abgelegt und die ehemalige Graduiertenschule der Imperial University (Hauptfach Chemie) abgeschlossen. Daher habe ich den mathematischen Hintergrund, um mich für sie einzuschreiben. Ich hatte viel Spaß am College, deshalb erinnere ich mich nicht an die Mathematik am College.
Sie können das B-Problem von ABC ohne viel Zögern lösen, aber beginnen Sie in einem Zustand, in dem Ihre Kenntnisse über Wettbewerbsprogrammierung und -algorithmen nahezu Null sind. AtCoder begann eher als Hobby.
** Lösen Sie Probleme mit genau dem richtigen Schwierigkeitsgrad mit Atcoder-Probleme. **nur das. ↓ Dies ist der aktuelle ABC-Füllstatus. Nun, ich stelle in 4 Monaten 330 Fragen, also denke ich, dass es eine Person ist, die es in kurzer Zeit gepackt hat, aber wenn Sie denken, dass 330 Fragen hellblau sind, ist es nicht angemessen? Eindruck das. Vor kurzem habe ich den Wettbewerb ein wenig ausgefüllt, damit ich weniger Probleme habe, die ich tatsächlich gelernt habe.
Übrigens ** Ich habe noch kein Mathpy oder Scipy verwendet. ** **. Sie können es tun, ohne es überhaupt zu benutzen. Ich habe vor, es in Zukunft zu verwenden.
――Das Ausfüllen von zu geringen Schwierigkeitsgraden mag gut sein, um die Motivation aufrechtzuerhalten, aber ich denke, es ist nutzlos (nicht bedeutungslos), um sich zu verbessern. Eine Person, die Problem A in 4 Minuten lösen kann, kann nur 2 Minuten verdienen, selbst wenn sie die Geschwindigkeit verdoppelt. Wenn Problem D jedoch 40 Minuten dauert, kann sie 4 Minuten verdienen, indem sie es nur um 10% beschleunigt. Dies ist also ein schwieriges Problem. Ich denke, dass es einfacher ist, sich zu verbessern, wenn Sie daran arbeiten. Selbst wenn Sie 10 Fragen mit 300 Punkten lösen, können Sie aus Erfahrung 400 Punkte nicht lösen. Wenn Sie 400 Punkte lösen können, müssen Sie 10 Fragen auf 400 Punkte stellen.
――Denken Sie über das Problem nach, bis Sie es vollständig verstanden haben. Selbst wenn Sie sich den Kommentar ansehen und denken: "Oh, das stimmt", hören Sie hier nicht auf. Ich werde es tun, bis ich es mit meinen eigenen Händen umsetze. Es war dasselbe wie für die Prüfung zu lernen, aber ** Das Gefährlichste ist, dass ich es lösen kann, indem ich so viele Fragen wie möglich sammle und meine Hand bewege, indem ich aufhöre zu denken. ** Ich werde es mit der Absicht tun, jede Frage zu meinem eigenen Blut zu machen. Es gibt jedoch einige Dinge, die ich immer noch für "Ich bin noch früh" halte, wenn ich mir den Kommentar ansehe, damit ich es nicht übertreibe. --Siehe die Antworten anderer Leute, die in Python eingereicht wurden. Es ist oft zu weit fortgeschritten, um hilfreich zu sein, aber es ist oft möglich, auf etwas zu stoßen, das Sie nicht kannten. »Ich habe ein Ichiou-Ameisenbuch gekauft und ungefähr die Hälfte davon gelesen. Ich versuche es zu lesen, wenn ich ein Gefühl der Stagnation verspüre. Es ist wichtig, ein umfassend geschriebenes Buch zu lesen. Natürlich können Sie Code nicht einfach durch Lesen schreiben.
Das ist eine wichtige Voraussetzung, und obendrein werde ich die Vorzüge auflisten, die ich tatsächlich mit Python empfunden habe.
Es ist leicht zu verstehen, was Sie auf einen Blick tun ... Ich fühle. Dies ist eher ein Vorteil, wenn Sie sich den Code eines anderen ansehen, als ein Vorteil, wenn Sie ihn selbst verwenden. Um ehrlich zu sein, ist es mir egal, ob ich es etwas verwirrend oder mit vielen Klammern schreibe. Moderne Hauptsprachen sind möglicherweise nicht so gut oder minderwertig (weil sie sonst eliminiert werden). Andererseits finde ich Python beim Lesen des Codes eines anderen oft vorteilhaft, weil es kurz und ordentlich ist. Nun, das ist auch subjektiv.
Es gibt viele Leute, die sich gefragt haben: "Ist das da?" Dichotomisierte Suche, priorisierte Warteschlange oder sequentielle Aufzählung. Und wenn Sie googeln, kommt es im Grunde heraus. Es gibt verschiedene Methoden für kürzeste Routen (obwohl es besser ist, eine zu haben, die Sie selbst implementiert haben, damit Sie verschiedene geringfügige Änderungen vornehmen können).
Natürlich können Sie nichts verwenden, was Sie nicht wissen. Sie haben keine Chance, es zu wissen, bis Sie auf das Problem stoßen, diese Methode zu verwenden. Alles was Sie tun müssen, ist zu lernen.
Ich denke, dass es bis zu einem gewissen Grad allen Sprachen gemeinsam ist, aber die Geschwindigkeit ändert sich vollständig in Abhängigkeit von der verwendeten Methode, selbst bei gleichem Implementierungsinhalt. Insbesondere bei der Textoperation ist der Unterschied größer. Ich denke jedoch, dass der große Unterschied die Kehrseite der Fülle an Methoden ist. Es kann gesagt werden, dass es ein großer Vorteil ist, dass Sie keine detaillierten Methoden selbst implementieren müssen.
Grundsätzlich können Sie pypy verwenden, aber Python ist nur für rekursive Funktionen schneller. Wenn Sie es während des Wettbewerbs eilig haben, können Sie Ihre Wahl und TLE (ein Verlust) vergessen.
In meinem Leben als Python-Profi hatte ich jedoch noch nie "TLE-Überreste, aber es gibt keinen Platz mehr zum Schaben". [Hier](https://maspypy.com/atcoder-%E6%A9%992400%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%97 Es ist auch in% E3% 81% 9F) geschrieben, aber ich denke nicht, dass es ein Problem sein wird, es sei denn, es befindet sich auf einem Niveau, das gelb oder orange wird. Ich denke, Python sollte gestoppt werden, wenn Sie sicher sind, dass Sie in so kurzer Zeit gelb werden können, dass Sie keine Zeit haben, die Sprache zu ändern, aber wie viele Menschen gibt es auf der Welt ... Ich persönlich habe auch ein wenig Zweifel an der Meinung, dass "eine Verbesserung um einen konstanten Faktor nicht wesentlich ist", und solange ich mit dem Code, den ich tatsächlich geschrieben habe, konkurriere, habe ich eine Schreibweise entwickelt, die innerhalb des Zeitlimits liegt, indem ich die Merkmale der Sprache unterdrücke Ist es nicht natürlich, es zu tun? Ich denke. Selbst wenn die Logik korrekt ist, denke ich, dass sie falsch sein sollte, wenn die Ausführungsgeschwindigkeit langsam ist.
Da ich viele Probleme gelöst habe, indem ich lange Zeit für Prüfungen studiert habe, ist das Belohnungssystem für die Lösung der Probleme abgeschlossen. Das Warten auf den Richter, der Gehirnsaft, wenn die AC-Anzeige erscheint, ist immer noch eine große Motivation, AtCoder fortzusetzen.
Insbesondere innerhalb der begrenzten Zeit des Wettbewerbs ist es einfach, fast denselben Vorgang immer wieder zu kopieren und einzufügen und die Anzahl der Fälle mehr als erforderlich zu erhöhen. Ich denke nicht, dass die Fähigkeit, sauberen Code zu schreiben, angewendet werden kann, wenn Sie sich dessen nicht bewusst sind.
Natürlich kann es je nach Art des Geschäfts nützlich sein, aber in meinem Unternehmen sind die Verbindung mit der DB / Front und dem Framework wichtiger, sodass ich es in der Praxis nicht für sehr nützlich halte. Nun, ich denke das ist der Fall. Ich habe das Gefühl, ich mache es nur als Hobby.
Es gibt so viele Dinge, die ich noch nicht studiert habe, deshalb möchte ich meine Möglichkeiten weiter verbessern und so weit wie möglich gehen. Ist es nicht etwas, das bis zu Blau gemacht werden kann? Ich fühle, dass.
das ist alles. Wenn Sie eine Idee haben, werde ich sie hinzufügen.