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