[PYTHON] Betreff: Wettbewerbsfähiges Programmierleben von vorne anfangen Damit Anfänger noch etwas mehr Leistung erzielen ~ ABC154 ~ 156 mit Impressionen ~

Lange nicht gesehen. Ich habe ABC154,155,156 erhalten, bevor ich mehr als 2 Wochen gepostet habe. 154 wurde bis C gelöst und die Leistung war 104, 155 war bis B 135 und 156 war bis C 354.

... Es ist ziemlich schwierig, aber die Leistung hat sich allmählich verbessert.

Und dieses Mal werde ich mit vielen Vorurteilen schreiben, wie man die Leistung durch die Technik des Backmessers so weit wie möglich verbessert, nicht durch die Programmierfähigkeit, die ich empfand, nachdem ich als Anfänger von AtCoder insgesamt dreimal ABC erlebt hatte.

Die Geschwindigkeit, mit der das C-Problem gelöst werden kann, ist wichtig

Der Kampf hat bereits begonnen, bevor der Wettbewerb beginnt! !! Abhängig vom Schwierigkeitsgrad dieser Zeit lösen Anfänger das C-Problem (wahrscheinlich) häufig, sodass sich die Bevölkerung auf dieses Gebiet konzentriert. Wenn Sie dieses C-Problem also frühzeitig lösen, verbessert sich die Leistung. Wenn Sie das C-Problem von ABC156 in 25 Minuten lösen, beträgt die Leistung ungefähr 600, wenn Sie es in 40 Minuten lösen, sind es ungefähr 350, und wenn es die letzte Minute ist, sind es ungefähr 100.

Übrigens, wenn Sie es in 15 Minuten lösen, wird es 800 überschreiten. Es ist eine sogenannte grüne Leistung. Lol

15 Minuten sind ein Schmerz, aber selbst ein Anfänger kann theoretisch ein Teekodierer werden, solange Sie bis zu einem gewissen Grad bis zu C weiter lösen können.

Dann ist es eine Geschichte, wie man es schnell löst. Im Folgenden werde ich eine Methode wie ein Backmesser für Anfänger wie mich schreiben, um C-Probleme schnell zu lösen.

Setzen Sie das Eingabebeispiel in einen Variablen- und Codetest

Dies ist sehr wichtig. AtCoder wird 5 Minuten lang bestraft, wenn der übermittelte Code falsch ist (dies hat erhebliche Auswirkungen auf das Ranking).

Sie, die dachten: "Wenn Sie Code-Tests einzeln durchführen, verlieren Sie Zeit"! !! Ich überschätze Anfänger.

Natürlich sind Anfänger nicht daran gewöhnt, Code zu schreiben, daher gibt es viele Rechtschreib- und Syntaxfehler. Der übermittelte Code wird in RE zurückgegeben und Sie werden bestraft.

Wir empfehlen dringend, das A-Problem ordnungsgemäß zu testen. Übrigens habe ich viel bei ABC154 eingereicht und eine Strafe von 45 Minuten genommen. Lol

Lesen Sie den Text des Eingabebeispiels sorgfältig durch

Anfänger wissen nicht, was sie sagen, indem sie nur den Fragentext lesen, insbesondere aus der C-Frage. Lol Wenn Sie jedoch den Text des Eingabebeispiels lesen und dann zum Fragetext zurückkehren, fällt Ihnen dies möglicherweise leicht ein.

Es wird empfohlen, da es schneller verstanden werden kann als das erneute Lesen der Problemstellung.

Kopie verwenden

Das ist fantastisch. Lol Es ist jedoch notwendig, die Leistung noch ein wenig zu verbessern. Lass uns hier böse färben. Lol Insbesondere wird das Kopieren und Einfügen von Funktionen empfohlen, da nur die Argumente zum Zeitpunkt der Ausgabe neu geschrieben werden.

Wenn der Wettbewerb beendet ist, schauen Sie sich den Inhalt des kopierten Codes genauer an und studieren Sie. ** Kopieren und Einfügen ist eine Vorausleihe von Wissen! !! ** ** **

Ich habe auch eine Funktion kopiert und eingefügt, die eine Dezimalzahl in eine n-fache Zahl in ABC156 konvertiert, also werde ich sie untersuchen. Lol

Zeichnen Sie ein Diagramm in ein Notizbuch

In vielen Fällen kann das C-Problem nicht ohne ein wenig mathematische Inspiration gelöst werden. Aber das ist eine Chance! !! Sie können es mit explosiver Geschwindigkeit einreichen, solange Sie eine Inspiration haben. https://atcoder.jp/contests/abc156/tasks/abc156_c Am Beispiel dieses ABC156 C-Problems heißt es in der Problemstellung, dass der Mindestwert unangenehm ist. Am Ende muss jedoch nur der Mittelpunkt der Koordinaten ermittelt werden. Wenn Sie ihn bemerken, können Sie ihn sofort lösen.

Da das, was Sie tun, dasselbe ist wie Mathematik, hilft es Ihnen, sich zu inspirieren, indem Sie verschiedene Zahlen in Ihr Notizbuch schreiben.


N = int(input())
X = list(map(int,input().split()))
P = sum(X)/len(X)
P = round(P)
count = 0
for i in range(N):
  count += (X[i] - P)**2
print(count)

Der Code ist einfach, so dass auch Anfänger ihn während der Suche sofort schreiben können. Es ist wirklich nur eine Inspiration.

Als ich so stolz sprach, vergaß ich, dass der Punkt P ein ganzzahliger Wert ist und nahm eine Strafe von 15 Minuten ()

Schließlich

Das Obige ist, wie AtCoder-Anfänger mit einem Backmesser noch etwas mehr Leistung erzielen können, aber das Wichtigste ist ** "Ich werde meine Fehler verlieren" **. Das ist alles dazu.

Und da dieser Artikel aufgrund meiner Vorurteile als Anfänger in der Wettbewerbsprogrammierung verfasst wurde, weisen Sie bitte darauf hin, wenn Sie nicht beabsichtigten, die umgekehrte Skala der Wettbewerbsprogramme zu berühren. (_ _) m

Recommended Posts

Betreff: Wettbewerbsfähiges Programmierleben von vorne anfangen Damit Anfänger noch etwas mehr Leistung erzielen ~ ABC154 ~ 156 mit Impressionen ~
Betreff: Wettbewerbsfähiges Programmierleben ab Null Kapitel 1.3 "Beilagentee"
Re: Heroku Leben von Grund auf neu mit Flask ~ PhantomJS bis Heroku ~
Betreff: Wettbewerbsfähiges Programmierleben ab Null Kapitel 1.2 "Python der Tränen"
Betreff: Wettbewerbsfähige Programmierlebensdauer ab Null Kapitel 1 1 "Nur C ++ kann verwendet werden"
[Für Anfänger von Wettkampfprofis] Drei Eingabemethoden, die Sie beim Starten der Wettkampfprogrammierung mit Python beachten sollten
[Für Anfänger] Re: Genetischer Algorithmus ab Null [Künstliche Intelligenz]
Re: Heroku Leben von vorne anfangen mit Flask ~ Selenium & PhantomJS & Beautifulsoup ~
Versuchen Sie, mit Python (2) eine Erfassungssoftware zu erstellen, die so genau wie möglich ist.
[Für Anfänger] Web-Scraping mit Python "Greifen Sie auf die URL auf der Seite zu, um den Inhalt abzurufen."