[PYTHON] AtCoderBeginnerContest181 Überprüfung & Zusammenfassung

AtCoder ABC181 Dies ist eine Zusammenfassung der Probleme von AtCoderBeginnerContest181, die am 01.11.2020 (So) in der Reihenfolge von Problem A unter Berücksichtigung der Berücksichtigung durchgeführt wurden. 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 Eine starke Rotation

Problemstellung Takahashi trägt jetzt weiße Kleidung. Takahashi trägt am nächsten Tag schwarze Kleidung, nachdem er weiße Kleidung getragen hat, und am nächsten Tag weiße Kleidung, nachdem er schwarze Kleidung getragen hat. Welche Farbe wirst du in $ N $ Tagen tragen?

abc181a.py


n = int(input())
if n % 2 == 0:
    print("White")
else:
    print("Black")

Problem B Trapezsumme

Problemstellung Es gibt eine leere Tafel. Takahashi arbeitet $ N $ mal und schreibt eine ganze Zahl an die Tafel. Schreiben Sie in der Operation _ $ i $ jeweils $ 1 $ aller Ganzzahlen von $ A_i $ bis $ B_i $ für insgesamt $ B_i - A_i + 1 $ Ganzzahlen. Ermitteln Sie die Summe der Ganzzahlen, die nach Abschluss der $ N $ -Operationen an die Tafel geschrieben wurden.

Es war sehr hilfreich, $ B_i - A_i + 1 $ in der Problemstellung zu haben. Ich vergesse oft, hier +1 hinzuzufügen und Fehler zu machen (Schweiß)

abc181b.py


n = int(input())
total = 0
for i in range(n):
    a, b = map(int, input().split())
    total += (b - a + 1) * (a + b) // 2
print(total)

C Problem Trapezsumme

Problemstellung Es gibt $ N $ Punkte auf einer unendlich breiten $ 2 $ Dimensionsebene. Der $ i $ -te Punkt liegt bei $ (x_i, y_i) $. Gibt es unterschiedliche $ 3 $ -Punkte von $ N $ -Punkten, die sich auf derselben geraden Linie befinden?

Auf einer geraden Linie zu sein bedeutet, dass für drei Punkte $ P_1, P_2, P_3 $ k\overrightarrow{P_1P_2}=\overrightarrow{P_1P_3} Da es notwendig ist zu halten, konnten wir einen bedingten Ausdruck zum Halten erhalten, indem wir $ k $ aus der Äquivalenz der x- und y-Komponenten eliminierten.

abc181c.py


n = int(input())
x_list = []
y_list = []
for i in range(n):
    x, y = map(int, input().split())
    x_list.append(x)
    y_list.append(y)
flag = 0
for i in range(n - 2):
    for j in range(i + 1, n - 1):
        for k in range(j + 1, n):
            xi = x_list[i]
            xj = x_list[j]
            xk = x_list[k]
            yi = y_list[i]
            yj = y_list[j]
            yk = y_list[k]
            if (xj - xi) * (yk - yi) == (xk - xi) * (yj - yi):
                flag = 1
if flag == 1:
    print("Yes")
else:
    print("No")

D Problem Hachi

Problemstellung Gegeben eine Folge von Zahlen $ S $, die nur aus Zahlen von 1 bis 9 besteht. Bee Takahashi mag Vielfache von $ 8 $. Takahashi versucht, die Zahlenfolge $ S $ neu anzuordnen, um ein Vielfaches von $ 8 $ zu erhalten. Bestimmen Sie, ob Sie ein Vielfaches von $ 8 $ machen können.

Damit eine bestimmte Zahlenfolge ein Vielfaches von $ 8 $ ist, müssen die letzten drei Ziffern ein Vielfaches von $ 8 $ sein. Daher kann es gelöst werden, indem geprüft wird, ob es möglich ist, drei Ziffern, was ein Vielfaches von $ 8 $ ist, für eine Folge von Zahlen mit drei oder mehr Ziffern zu erstellen. Zuerst haben wir eine Kombination von Zahlen aufgezeichnet, die ein Vielfaches von $ 8 $ sind, ohne $ 0 $, und haben bestätigt, dass die für diese Kombination erforderliche Zahl ausreichend ist, und ein Urteil gefällt. Ich denke, ich kann einen einfacheren Code schreiben, aber ich werde den eingereichten Code so veröffentlichen, wie er ist.

abc181d.py


s = input()
flag = 0
if len(s) == 1:
    if int(s) % 8 == 0:
        flag = 1
elif len(s) < 3:
    if int(s) % 8 == 0:
        flag = 1
    if int(s[1] + s[0]) % 8 == 0:
        flag = 1
else:
    check_list = []
    for i in range(14, 125):
        mozi = str(i * 8)
        if len(mozi) == 3 and "0" not in mozi:
            count_list = [0] * 9
            count_list[int(mozi[0]) - 1] += 1
            count_list[int(mozi[1]) - 1] += 1
            count_list[int(mozi[2]) - 1] += 1
            check_list.append(count_list)
    s_list = [0] * 9
    for suuzi in s:
        s_list[int(suuzi) - 1] += 1
    for count_list in check_list:
        total = 0
        for i in range(9):
            if count_list[i] > 0:
                if count_list[i] <= s_list[i]:
                    total += count_list[i]
        if total == 3:
            flag = 1
            break
if flag == 1:
    print("Yes")
else:
    print("No")

Dieses Mal konnte ich das D-Problem in einem guten Tempo lösen, aber ich konnte das E-Problem nicht lösen, weil es von 'WA' blockiert wurde. Da die Richtlinie in Kraft war, möchte ich sicherstellen, dass sie beim nächsten Mal gelöst werden kann.

Vielen Dank für das Lesen bis zum Ende.

Recommended Posts

AtCoderBeginnerContest180 Review & Zusammenfassung
AtCoderBeginnerContest181 Überprüfung & Zusammenfassung
AtCoderBeginnerContest182 Überprüfung & Zusammenfassung
AtCoderBeginnerContest183 Überprüfung & Zusammenfassung
AtCoderBeginnerContest179 Review & Zusammenfassung
AtCoderBeginnerContest178 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest175 Review & Summary (erste Hälfte)
AtCoderBeginnerContest161 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest164 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest164 Review & Summary (erste Hälfte)
AtCoderBeginnerContest169 Review & Summary (erste Hälfte)
AtCoderBeginnerContest176 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest174 Review & Summary (erste Hälfte)
AtCoderBeginnerContest173 Review & Summary (Erste Hälfte)
AtCoderBeginnerContest168 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest169 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest165 Review & Summary (erste Hälfte)
AtCoderBeginnerContest170 Review & Summary (erste Hälfte)
AtCoderBeginnerContest167 Review & Summary (erste Hälfte)
AtCoderBeginnerContest166 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest177 Review & Summary (erste Hälfte)
AtCoderBeginnerContest171 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest168 Review & Summary (erste Hälfte)
AtCoderBeginnerContest174 Review & Summary (zweite 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)
AtCoderBeginnerContest173 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest172 Review & Summary (erste Hälfte)
AtCoderBeginnerContest177 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest176 Review & Summary (erste Hälfte)
Python-Zusammenfassung
Django Zusammenfassung
python-pptx Zusammenfassung
Linux Zusammenfassung
Python-Zusammenfassung
Django Zusammenfassung
pyenv Zusammenfassung
Zusammenfassung der Zeichenketten 1
pytest Zusammenfassung
matplotlib Zusammenfassung
Funktionsüberprüfung