AtCoder ABC177 Dies ist eine Zusammenfassung der Probleme des AtCoder Beginner Contest 177, die am Samstag, den 29.08.2018 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
Problemstellung Takahashi trifft sich mit Aoki. Der Treffpunkt ist $ D $ Meter von Takahashis Haus entfernt und die Treffzeit ist $ T $ Minuten später. Takahashi verlässt jetzt sein Zuhause und fährt mit $ S $ Metern pro Minute direkt zum Treffpunkt. Wirst du pünktlich zum Treffen sein?
abc177a.py
d, t, s = map(int, input().split())
if d <= t * s:
print("Yes")
else:
print("No")
Problemstellung $ 2 $ Zwei Zeichenfolgen $ S, T $ sind angegeben. Schreiben Sie einige Zeichen in $ S $ neu, sodass $ T $ eine Teilzeichenfolge von $ S $ ist. Wie viele Zeichen muss ich mindestens umschreiben? Ein Teilstring ist jedoch ein kontinuierlicher Teilstring. Zum Beispiel ist 'xxx' eine Teilzeichenfolge von 'yxxxy', aber keine Teilzeichenfolge von 'xxyxx'.
Da $ S und T $ mehr als $ 1 $ und weniger als $ 1000 $ sind, können alle Möglichkeiten rechtzeitig berechnet werden. Wenn Sie beispielsweise das 7-stellige 'abcdefg' und das 3-stellige 'efh' berücksichtigen, wie viele Zeichen müssen für jedes von 'abc', 'bcd', 'cde', 'def' und 'efg' neu geschrieben werden. Wird berechnet und der kleinste ist die Antwort.
abc177b.py
s = input()
t = input()
min_count = 1000
for i in range(len(s) - len(t) + 1):
count = 0
for j in range(len(t)):
if s[i+j] != t[j]:
count += 1
min_count = min(count, min_count)
if min_count == 0:
break
print(min_count)
Problemstellung $ N $ ganze Zahlen $ A_1,…, A_N $ sind angegeben. $ 1 \ leq i <j \ leq Ermitteln Sie die Summe von $ A_i × A_j $ für alle Paare $ (i, j) $, die N $ mit $ mod (10 ^ 9 + 7) $ erfüllen.
Die zu berechnende Summe ist $ A_1 × (A_2 + ... + A_N) + A_2 × (A_3 + ... + A_N) + ... + A_ {N-1} × (A_N) $, daher werden alle einzeln berechnet. Der Rechenaufwand kann unterdrückt werden, anstatt dies zu tun.
abc177c.py
n = int(input())
a_list = list(map(int, input().split()))
ans = 0
total = 0
mod = 10 ** 9 + 7
for i in range(n):
total += a_list[i]
if total >= mod:
total = total % mod
for i in range(n - 1):
total -= a_list[i]
if total < 0:
total += mod
ans += a_list[i] * total
if ans >= mod:
ans = ans % mod
print(ans)
Dies ist das Ende der ersten Hälfte. Vor kurzem wurde der offizielle Kommentar sehr sorgfältig beschrieben, daher hoffe ich, dass Sie sich für die detaillierte Lösung darauf beziehen können. Vielen Dank für das Lesen bis zum Ende der ersten Hälfte.
Die zweite Hälfte wird das DE-Problem erklären. Fortsetzung in der zweiten Hälfte.
Recommended Posts