[PYTHON] AtCoderBeginnerContest179 Review & Zusammenfassung

AtCoder ABC179 Dies ist eine Zusammenfassung der Probleme des AtCoder-Anfängerwettbewerbs 179, der am Samstag, den 19.09.2020, in der Reihenfolge von Problem A unter Berücksichtigung der Berücksichtigung stattfand. (Ich hatte keine Zeit, also werde ich einige Gedanken hinzufügen, wenn ich Zeit habe. Schweiß) 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 Pluralform

Problemstellung Im Königreich AtCoder wird die Sprache Takahashi verwendet, die Kleinbuchstaben verwendet. In Takahashi werden die Pluralformen der Nomenklatur nach den folgenden Regeln geschrieben. ・ Wenn das Ende der Singularform nicht "s" ist, fügen Sie am Ende der Singularform "s" hinzu. ・ Wenn die Singularform mit "s" endet, fügen Sie am Ende der Singularform "es" hinzu Geben Sie angesichts der Singularform $ S $ der Takahashi-Nomenklatur die Pluralform aus.

abc179a.py


n = input()
if n[-1] == "s":
    print(n + "es")
else:
    print(n + "s")

Problem B Geh ins Gefängnis

Problemstellung Herr Takahashi führte die Aktion "$ 2 $ Würfel würfeln" $ N $ mal aus. Der $ i $ -Roll ist $ D_ {i, 1}, D_ {i, 2} $. Stellen Sie fest, ob Sie Zoro-Augen mehr als $ 3 $ hintereinander hatten. Genauer gesagt, $ D_ {i, 1} = D_ {i, 2} $ und $ D_ {i + 1,1} = D_ {i + 1,2} $ und $ D_ {i + 2,1} Bestimmen Sie, ob es mindestens ein $ i $ gibt, das = D_ {i + 2,2} $ erfüllt.

abc179b.py


n = int(input())
check_list = []
for i in range(n):
    d1, d2 = map(int, input().split())
    if d1 == d2:
        check_list.append(1)
    else:
        check_list.append(0)
flag = 0
for i in range(n - 2):
    if sum(check_list[i:(i+3)]) == 3:
        flag = 1
        break
if flag:
    print("Yes")
else:
    print("No")

C Problem A x B + C.

Problemstellung Bei einer positiven ganzen Zahl $ N $. Wie viele Paare positiver Ganzzahlen $ (A, B, C) $ erfüllen $ A × B + C = N $?

abc179c.py


n = int(input())
count = 0
for a in range(1, n):
    count += (n - 0.5) // a
print(int(count))
print(count)

D Problem Springen Tak

Problemstellung Es gibt ein Raster von $ N $ Quadraten in einer Reihe, und die Quadrate sind in der Reihenfolge von links mit $ 1,2,…, N $ nummeriert. Herr Takahashi, der auf diesem Feld lebt, befindet sich derzeit auf dem Feld $ 1 $ und versucht, auf das Feld $ N $ zu gelangen, indem er die Bewegung mit der später beschriebenen Methode wiederholt. Bei einer Ganzzahl $ K $ kleiner oder gleich $ 10 $ und $ K $ Intervall $ [L_1, R_1], [L_2, R_2],…, [L_K, R_K] $ ohne gemeinsame Teile sind diese Intervalle Die Summe von $ S $ sei. Das Intervall $ [l, r] $ repräsentiert jedoch eine Menge von ganzen Zahlen, die größer oder gleich $ l $ und kleiner oder gleich $ r $ sind. ・ Wenn Sie sich in der Masse $ i $ befinden, wählen Sie $ 1 $ aus $ S $ (nennen wir es $ d $) und wechseln Sie zur Masse $ i + d $. Bewegen Sie sich jedoch nicht außerhalb des Platzes. Finden Sie für Takahashi den Rest der Anzahl der Wege, um zur Masse $ N $ geteilt durch $ 998244353 $ zu gelangen.

abc179d.py


n, k = map(int, input().split())
s_list = []
a_list = [0] * (n + 1)
b_list = [0] * (n + 1)
a_list[1] = 1
b_list[1] = 1
for i in range(k):
    l, r = map(int, input().split())
    s_list.append([l, r + 1])
for i in range(2, n + 1):
    for l, r in s_list:
        t2 = max(0, i - l)
        t1 = max(0, i - r)
        a_list[i] += b_list[t2] - b_list[t1]
    b_list[i] = (b_list[i - 1] + a_list[i]) % 998244353
print(a_list[n] % 998244353)

E Problem Sequenzsumme

Problemstellung Der Rest von $ x $ geteilt durch $ m $ wird als $ f (x, m) $ ausgedrückt. Sei $ A $ eine Folge von Zahlen, die durch den Anfangswert $ A_1 = X $ und den allmählichen Ausdruck $ A_ {n + 1} = f (A_n ^ 2, M) $ definiert sind. Finde $ \ sum_ {i = 1} ^ {N} A_i $.

abc179e.py


n, x, m = map(int, input().split())
x_set = set()
x_list = []
for i in range(n):
    if x not in x_set:
        x_set.add(x)
        x_list.append(x)
    else:
        break
    x = x**2 % m
total = 0
start = n
for i in range(n):
    if x_list[i] == x:
        start = i
        break
    else:
        total += x_list[i]
if start != n:
    m = len(x_list) - start
    k = (n - start) // m
    total += k * sum(x_list[start:])
    for i in range(0, n - k * m - start):
        total += x_list[start + i]
print(total)

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
python-pptx Zusammenfassung
Linux Zusammenfassung
Python-Zusammenfassung
Django Zusammenfassung
pyenv Zusammenfassung
Zusammenfassung der Zeichenketten 1
pytest Zusammenfassung
matplotlib Zusammenfassung
Funktionsüberprüfung