Die Person, die erst kürzlich einen grünen Rang in AtCoder erhalten hat.
Dieses Mal habe ich zusammengefasst, was ich persönlich getan habe und worauf ich achte.
Ich denke, das Folgende ist notwendig, um den grünen Rang zu erreichen.
Letztendlich denke ich, dass es möglich ist, in den grünen Rang zu gelangen, auch wenn Sie das D-Problem nicht lösen können (obwohl es einige Zeit dauern kann).
In der folgenden Tabelle sind die Ergebnisse der Wettbewerbe zusammengefasst, an denen ich kürzlich virtuell teilgenommen habe.
Name des Wettbewerbs | Ergebnis | Bewertung * |
---|---|---|
ABC127 | 3 abgeschlossen | 921 |
ABC128 | 3 abgeschlossen | 1148 |
ABC129 | 3 abgeschlossen | 1005 |
ABC130 | 4 abgeschlossen | 1309 |
ABC131 | 3 abgeschlossen | 524 |
ABC132 | 4 abgeschlossen | 1257 |
ABC133 | 4 abgeschlossen | 1115 |
ABC134 | 4 abgeschlossen | 1113 |
ABC135 | 3 abgeschlossen | 1175 |
ABC136 | 4 abgeschlossen | 1131 |
ABC137 | 4 abgeschlossen | 1451 |
ABC138 | 4 abgeschlossen | 1007 |
In der obigen Tabelle gibt es ** 3-mal, wenn die Rate 1148 oder 1175 ist.
ABC131 ist ein Beispiel, bei dem das D-Problem einfach war, aber bei 3 Endungen aufhörte. .. ..
Daher denke ich persönlich wie folgt.
Lösen Sie das C-Problem jedes Mal in 15 Minuten und lösen Sie das D-Problem alle drei Male! </ font>
Wenn es mehr als 15 Minuten dauert, um das C-Problem zu lösen, werde ich das D-Problem definitiv lösen! Ich fühle mich wie.
Das Folgende ist eine Zusammenfassung dessen, worauf Sie bei der Lösung der Probleme A bis D achten sollten.
Die meisten Probleme A und B können gelöst werden, wenn Sie die grundlegende Grammatik kennen.
Ich glaube nicht, dass es ein besonderes Problem mit dem Rechenaufwand gab. Verwenden wir also einfach eine for-Anweisung oder eine if-Anweisung, um das Problem zu lösen.
Lassen Sie uns auch die grundlegende Verarbeitung der Liste durchführen.
test.py
l =[]
l.append(1) #Zur Liste hinzufügen
a = l.pop() #Extrahieren Sie das Ende der Liste
l = [i for i in range(N)] #Einschlussnotation
max_l = max(l) #Holen Sie sich den Maximalwert in der Liste
min_l = min(l) #Holen Sie sich den Mindestwert in der Liste
Und beim B-Problem gibt es manchmal ein Problem wie "normale Verarbeitung wird ausgeführt, wenn N> 1 ist, aber Ausnahmeverarbeitung wird ausgeführt, wenn N = 0" (oder besser gesagt, ein solcher Fehler ist in dem von mir geschriebenen Programm aufgetreten. Es gibt Zeiten, in denen
test.py
import sys
if N == 0:
#Spezialbehandlung
sys.exit()
for i in range(N):
#Normale Verarbeitung
Ich schreibe manchmal so etwas.
C hat einige schwierige Probleme, und der Rechenaufwand muss berücksichtigt werden.
In diesem Problem beträgt die Eingabegröße 2 * 10 ^ 9. Dies ist die Größe, in der sogar eine einzelne Schleife zu TLE wird, daher muss ich denken, dass eine einfache for-Anweisung nicht verwendet werden kann.
Wenn Sie jedoch positiv darüber nachdenken, ist dies ein Hinweis, da es eine Möglichkeit gibt, den Rechenaufwand sicher zu reduzieren.
Im Gegensatz dazu sind bei diesem Problem die Eingabedaten eine Zeichenfolge mit 10 Zeichen oder weniger. Bei Problemen mit extrem kleinen Eingabedaten wird häufig die ** vollständige Suche ** verwendet.
--Wenn N <= 10 ist, können Sie die Bit-Vollsuche und die N! Street-Vollsuche verwenden. --Wenn 100 <N <200, können Sie bis zu drei Schleifen verwenden
Ich kann so etwas erwarten. Es ist nur eine Erwartung.
Das C-Problem importiert verschiedene Python-Bibliotheken und -Module.
Bereiten Sie auch häufig verwendete Funktionen im Voraus vor.
Ich werde die Bibliotheken, Module und Funktionen zusammenfassen, die ich persönlich für C-Probleme verwende.
--itertools (Kombination, Sequenz, vollständige Suche nach N! Streets) --math (minimales gemeinsames Vielfaches, maximales Versprechen usw.)
Bitte kommentieren Sie, wenn es andere gibt!
Um es anders herum auszudrücken, die meisten Probleme können ohne Verwendung schwieriger Algorithmen wie ** dynamische Planungsmethode, Dixtra-Methode, DFS und BFS gelöst werden. ** ** **
Problem D ist nicht stabil, weil ich es nur ungefähr 7 Mal lösen kann, wenn ich 10 Wettbewerbe habe, und manchmal kann ich es innerhalb von 30 Minuten lösen und manchmal sind es nur 100 Minuten.
Persönlich habe ich mich gefragt, ob es stabil wäre, wenn ich die in @ drkens diesem Artikel aufgeführten Probleme ohne Probleme lösen könnte. Ich werde.
Daher scheint es gut zu sein, die hier geschriebene Vorlage des Algorithmus im Voraus zu codieren und dann das Programm je nach Problem hinzuzufügen oder zu ändern.
Wenn es sich um einen grünen Codierer handelt, müssen Sie ihn nicht lösen. Ich muss lernen, weil ich das E-Problem lösen muss, um hellblau zu werden.
Es gibt viele persönliche Meinungen, aber ich hoffe, es wird hilfreich sein.
Recommended Posts