[PYTHON] AtCoderBeginnerContest169 Review & Summary (erste Hälfte)

AtCoder ABC169 Dies ist eine Zusammenfassung der Probleme des AtCoder Beginner Contest 169, die am 31.05.2020 (So) aufgetreten sind, beginnend mit Problem A und unter Berücksichtigung der Überlegungen. Das erste Halbjahr befasst sich mit Fragen bis ABC. Das Problem wird zitiert, aber bitte überprüfen Sie die Wettbewerbsseite für Details. Klicken Sie hier für die Wettbewerbsseite Offizieller Kommentar PDF

Problem A Multiplikation 1

Problemstellung Finde $ A × B $.

Es nahm die Eingabe und Ausgabe des Produkts.

abc169a.py


a, b = map(int, input().split())
print(a * b)

Problem B Multiplikation 2

Problemstellung $ N $ ganze Zahlen $ A_1, ..., A_N $ sind angegeben. Finde $ A_1 × ... × A_N $. Wenn das Ergebnis jedoch $ 10 ^ {18} $ überschreitet, geben Sie stattdessen "-1" aus.

Ich habe an Python teilgenommen, aber es fiel mir schwer. Es wäre schlecht, wenn am Ende der Eingabe eine 0 wäre, also habe ich ein Programm geschrieben, das alle Werte multipliziert und es wurde "TLE". Wenn ich überprüfen könnte, ob es am Anfang eine 0 gab, hätte ich nicht so viel mit Python zu kämpfen gehabt, aber ich habe mehr Zeit als erwartet verbracht und die Strafen überschnitten sich (Reue). Ich war optimistisch, dass es in Ordnung sein würde, da es für Python keine Obergrenze für den Int-Typ gibt, aber ich wusste nicht, dass die Berechnungskosten stetig steigen würden.

abc169b.py


n = int(input())
a_list = list(map(int, input().split()))
if 0 in a_list:
    print(0)
else:
    ans = 1
    flag = 1
    for i in range(0, n):
        ans *= int(a_list[i])
        if ans > 10 ** 18:
            flag = 0
            break
    if flag == 0:
        print(-1)
    else:
        print(ans)

Übrigens habe ich 4 mal Pena ausgegeben.

C Problem Multiplikation 3

Problemstellung Schneiden Sie $ A × B $ ab und geben Sie das Ergebnis als Ganzzahl aus. Einschränkungen ・ $ 0 \ leq A \ leq 10 ^ {15} $ ・ $ 0 \ leq B <10 $ ・ $ A $ ist eine ganze Zahl ・ $ B $ wird bis zum Bruchteil $ 2 $ abgegeben

Ich wusste, dass es einen Fehler bei der Berechnung von Brüchen geben würde, also dachte ich, wenn ich es mit 100 multipliziere, um es zu einer ganzen Zahl zu machen, könnte ich es ohne Probleme berechnen, also reichte ich eine Methode ein, um die Eingabe $ B $ mit 100 zu multiplizieren. Ich wurde jedoch "WA" und war verzweifelt. Der Code, der das erste übermittelte "WA" zurückgegeben hat.

abc169c.py


a, b = input().split()
a = int(a)
b = int(float(b) * 100)
print(a * b // 100)

Ich wusste nicht, was die Ursache war, und ich habe verschiedene Dinge ausprobiert, aber es ging nicht durch, und am Ende konvertierte ich die Zeichenfolge direkt als dreistellige Ganzzahl in eine Zahlenfolge, anstatt die Eingabe $ B $ in float umzuwandeln. Ich konnte "AC" bestehen. Ich habe erfahren, dass ein Fehler auch dann auftritt, wenn ein Bruch mit 100 multipliziert wird, um ihn zu einer Ganzzahl zu machen (das Beispiel wurde ohne Probleme gelöst, sodass die Ursache völlig unbekannt war).

abc169c.py


a, b = input().split()
a = int(a)
b = int(''.join(b.split(".")))
x = a * b
print(x // 100)

Das C-Problem war auch 4 Pena vor der Ausgabe von "AC".

Dies ist das Ende der ersten Hälfte. Persönlich fühlte ich mich wie eine Auswahl von Teilen, in denen ich nicht gut war, und ich war ungeduldig, dass ich nur Problem A hatte und die Rate klapperte, was meiner Meinung nach der Grund ist, warum die Lösung lange gedauert hat. Ich war während des Wettbewerbs wirklich verzweifelt, weil ich den Grund nicht kannte (weil sich die Anzeigemethode der Richterergebnisse ohne Vorankündigung änderte und ich nicht einmal wusste, wie viele Probleme ich durchstehen konnte). Vielen Dank für das Lesen bis zum Ende der ersten Hälfte.

In der zweiten Hälfte wird das DEF-Problem erläutert. Fortsetzung in der zweiten Hälfte.

Recommended Posts

AtCoderBeginnerContest175 Review & Summary (erste Hälfte)
AtCoderBeginnerContest164 Review & Summary (erste Hälfte)
AtCoderBeginnerContest169 Review & Summary (erste Hälfte)
AtCoderBeginnerContest174 Review & Summary (erste Hälfte)
AtCoderBeginnerContest173 Review & Summary (Erste Hälfte)
AtCoderBeginnerContest165 Review & Summary (erste Hälfte)
AtCoderBeginnerContest170 Review & Summary (erste Hälfte)
AtCoderBeginnerContest167 Review & Summary (erste Hälfte)
AtCoderBeginnerContest177 Review & Summary (erste Hälfte)
AtCoderBeginnerContest168 Review & Summary (erste Hälfte)
AtCoderBeginnerContest178 Review & Summary (erste Hälfte)
AtCoderBeginnerContest171 Review & Summary (erste Hälfte)
AtCoderBeginnerContest166 Review & Summary (erste Hälfte)
AtCoderBeginnerContest161 Review & Summary (erste Hälfte)
AtCoderBeginnerContest172 Review & Summary (erste Hälfte)
AtCoderBeginnerContest176 Review & Summary (erste Hälfte)
AtCoderBeginnerContest178 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest161 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest164 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest176 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest168 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest169 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest166 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest171 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest174 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest173 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest177 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest180 Review & Zusammenfassung
AtCoderBeginnerContest182 Überprüfung & Zusammenfassung
AtCoderBeginnerContest183 Überprüfung & Zusammenfassung
AtCoderBeginnerContest179 Review & Zusammenfassung
Django Girls Tutorial Zusammenfassung Erste Hälfte
AtCoder Rückblick auf frühere Fragen (erste Hälfte von 12 / 8,9)