https://atcoder.jp/contests/abc154 A
s, t = input().split()
a, b = map(int, input().split())
u = input()
if u == s: a -= 1
else: b -= 1
print(a, b)
Verzweigen Sie, indem Sie nur s mit der if-Anweisung vergleichen.
Einreichung https://atcoder.jp/contests/abc154/submissions/9973325
B
s = input()
ans = 'x' * len(s)
print(ans)
(Länge der Eingabezeichenfolge) * 'x'
wird ausgegeben.
Ich könnte es in einer Zeile schreiben. print (len (input ()) * 'x')
Einreichung https://atcoder.jp/contests/abc154/submissions/9975951
C
def main():
n = int(input())
a = list(map(int, input().split()))
seta = set(a)
ans = 'YES' if len(a) == len(seta) else 'NO'
print(ans)
main()
Sie müssen nur prüfen, ob doppelte Elemente vorhanden sind, sodass Sie die Liste mit set ()
kombinieren können, um ein doppeltes Element zu erstellen.
Es ist in Ordnung, wenn Sie die Anzahl dieser Elemente vergleichen und prüfen, ob sie gleich sind.
Einreichung https://atcoder.jp/contests/abc154/submissions/9980825
D
def main():
n, k = map(int, input().split())
p = list(map(int, input().split()))
ex = [0 for _ in range(n)]
for i in range(n):
ex[i] = (p[i]+1)/2
sumex = sum(ex[:k])
tmp = sum(ex[:k])
for i in range(n-k):
tmp = tmp + (ex[i+k] - ex[i])
sumex = max(sumex, tmp)
print(sumex)
main()
Wenn Sie die Summe der erwarteten Werte von j = i bis i + k-1 im Bereich von i = 1 ~ n-1 berechnen, dauert es im schlimmsten Fall N × K = 10 bis zur 10. Potenz, also ist es nutzlos (ich war nutzlos) Einreichung).
Bereiten Sie daher die Summe der ersten bis k erwarteten Werte als Anfangswert in "tmp" vor, und der i + 1. erwartete Wert ist "(i-erwarteter Wert) - (i-erwarteter Wert) + (i Durch Setzen von + k + 1. erwarteter Wert) `können Sie die Berechnungsprobleme vermeiden (ein Bild, das Sie notieren müssen?). Und aktualisiert durch Vergleich mit dem Maximalwert "sumex" zu diesem Zeitpunkt.
(Erwarteter Wert der Summe von p_i) = (Summe des erwarteten Wertes von p_i), sodass die Berechnung des erwarteten Wertes am Ende zusammengefasst werden kann.
Einreichung (nach Beendigung des Wettbewerbs) https://atcoder.jp/contests/abc154/submissions/10020043
Ich möchte es hinzufügen, wenn ich AC kann.
Kommentare von @ c-yan hinzugefügt. In Bezug auf die Beschreibung des D-Problems scheint der folgende Teil nach der Korrektur schneller zu funktionieren. Vor der Korrektur
ex = [0 for _ in range(n)]
Überarbeitet
ex = [0] * n
Außerdem können Sie in diesem Fall in einer Zeile einschließlich des darunter liegenden Teils schreiben.
ex = [(p[i]+1)/2 for i in range(n)]
Es gab hier einen hilfreichen Artikel als verwandten Artikel. 8 kleine Unterschiede in der Verarbeitungsgeschwindigkeit, die Python kennen sollte
Recommended Posts