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