[Bei Coder] Was ich getan habe, um den grünen Rang in Python zu erreichen

qiita.png

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.

Um den grünen Rang zu erreichen

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.

Problem A / Problem B.

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 Problem

C hat einige schwierige Probleme, und der Rechenaufwand muss berücksichtigt werden.

Punkt 1: Sehen Sie sich die Größe der Eingabedaten an (berücksichtigen Sie den Rechenaufwand).

Beispiel 1: ABC133 C-Problem

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.

Beispiel 2: ARC061 C-Problem

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.

Punkt 2: Notieren Sie nützliche Bibliotheken usw. in einem Memo

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.)

  • Aufzählung der Brüche (die von O (√N) erhaltene Version) --bit vollständige Suche (nur gültig, wenn N klein ist) --deque (Liste, die am linken und rechten Rand angehängt und eingefügt werden kann) --heapq (Prioritätswarteschlange)
  • Sammlungen (derjenige, der die Häufigkeit des Auftretens zählt)
  • Bisisekt (Dichotomie)

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. ** ** **

D Problem

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.

E Problem / F Problem

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.

Schließlich

Es gibt viele persönliche Meinungen, aber ich hoffe, es wird hilfreich sein.

Recommended Posts

[Bei Coder] Was ich getan habe, um den grünen Rang in Python zu erreichen
Was ich getan habe, um Python-Speicher zu speichern
[Python] Was ich getan habe, um Unit Test zu machen
Was ich beim Update von Python 2.6 auf 2.7 gemacht habe
Ich möchte den Fortschritt in Python anzeigen!
Was ich getan habe, als ich mit Lambda Python im Zeitlimit steckte
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Was ich getan habe, um eine SSH-Verbindung zur VPS Ubuntu-Umgebung herzustellen
Ich möchte R-Datensatz mit Python verwenden
Was ich in Python gelernt habe
Was ich getan habe, als ich wütend war, es mit der Option enable-shared einzufügen
Was ich getan habe, um die String-Suchaufgabe zu beschleunigen
Ich habe versucht, die Mail-Sendefunktion in Python zu implementieren
Ich habe versucht zusammenzufassen, was der Python-starke Mann in der professionellen Nachbarschaft des Wettbewerbs tut
Belüftung ist wichtig. Was ich getan habe, um die CO2-Konzentration im Raum aufzuzeichnen
Im Python-Befehl zeigt Python auf Python3.8
Ich habe die Warteschlange in Python geschrieben
Ich habe den Stack in Python geschrieben
[Bei Coder] Was ich getan habe, um den grünen Rang in Python zu erreichen
Was ich dachte und lernte, 100 Tage an einer Programmierschule zu studieren
Was ich getan habe, um eine SSH-Verbindung zur VPS Ubuntu-Umgebung herzustellen
Was ich mit json.dumps in Pythons base64-Codierung süchtig gemacht habe
Was ich getan habe, als ich Python schneller machen wollte - Numba Edition -
Löse den kleinsten Wert in Python (entspricht Paiza Rang D)
Was tun, wenn der Werttyp in Python nicht eindeutig ist?
Ich habe versucht, PLSA in Python zu implementieren
Ich habe versucht, Permutation in Python zu implementieren
Ich habe versucht, PLSA in Python 2 zu implementieren
Was ist "Mahjong" in der Python-Bibliothek? ??
Ich habe versucht, ADALINE in Python zu implementieren
Ich wollte ABC159 mit Python lösen
Ich habe versucht, PPO in Python zu implementieren
Was ich mit Python-Arrays gemacht habe
FBX SDK Welche Fähigkeiten benötige ich, um ein Programm mit Python zu erstellen?
[Python] Ich habe versucht, den kollektiven Typ (Satz) auf leicht verständliche Weise zusammenzufassen.
Was ich getan habe, um die Luftfeuchtigkeit und Temperatur des Archivs zu verfolgen
Ich möchte die abstrakte Klasse (ABCmeta) von Python im Detail erklären
Der Dateiname war in Python schlecht und ich war süchtig nach Import
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Was soll ich verwenden, um Typvergleiche in Python durchzuführen?
Verwendung der C-Bibliothek in Python
Ich möchte Dunnetts Test in Python machen
Ich möchte Python in der Umgebung von pyenv + pipenv unter Windows 10 verwenden
Bei der Konvertierung von CSV in JSON mit Python bin ich auf einen Zeichencode gestoßen
Python: Ich konnte in Lambda rekursieren
Ich möchte mit Python ein Fenster erstellen
Was ist im Docker Python-Image pfeifend?
Ich habe versucht, "Birthday Paradox" mit Python zu simulieren
Ich habe die Methode der kleinsten Quadrate in Python ausprobiert
Dynamisches Ersetzen der nächsten Methode in Python
Geschrieben "Einführung in die Effektüberprüfung" in Python
Zeichnen Sie Diagramme in Julia ... Überlassen Sie die Diagramme Python
Ich möchte verschachtelte Dicts in Python zusammenführen
[Python x AWS x Serverless] Was ich auf der Bühne von PyCon JP 2020 zurückgelassen habe
Tipps zum Schreiben werden in Python kurz abgeflacht
Ich habe versucht, TOPIC MODEL in Python zu implementieren
So erhalten Sie die Dateien im Ordner [Python]
Ich suchte nach den Fähigkeiten, die erforderlich sind, um Webingenieur bei Python zu werden
Ich habe versucht, die inverse Gammafunktion in Python zu implementieren
[Frage] Was passiert, wenn Sie% in Python verwenden?