Wir haben am AtCoder Beginner Contest 171 teilgenommen. Ich konnte die Probleme A bis C lösen. Ich werde meine Gedanken zu diesem Zeitpunkt aufschreiben.
A - Rainy Season Gibt die Anzahl aufeinanderfolgender Rs aus einer Zeichenfolge der Länge 3 zurück. Ich habe es geschoben.
S = input()
if 'RRR' in S:
print(3)
elif 'RR' in S:
print(2)
elif 'R' in S:
print(1)
else:
print(0)
B - Making Triangle Gegeben ist die Längenliste L von N Stäben. Wählen Sie drei davon aus und geben Sie die Anzahl der Kombinationen zurück, die die Bedingungen erfüllen.
Ich habe mich in den Kombinationen umgesehen und dafür itertools.combinations verwendet. Um herauszufinden, wie man es während des Wettbewerbs benutzt ... itertools.combinations(N,r) Gibt eine Liste von r Kombinationen zurück, die aus Liste N ausgewählt werden können. Beispiel: Kombinationen (Bereich (5), 3) → (0,1,2), (0,1,3), (0,1,4), (0,2,3), (0,2,4) ), (0,3,4), (1,2,3), (1,2,4), (1,3,4), (2,3,4)
import itertools
N = int(input())
L = list(map(int, input().split()))
count = 0
for i in itertools.combinations(range(N), 3):
Lx = sorted([L[i[0]], L[i[1]], L[i[2]]])
if not (Lx[0] == Lx[1] or Lx[1] == Lx[2] or Lx[2] == Lx[0]):
if Lx[0] + Lx[1] > Lx[2] :
count += 1
print(count)
C - Walking Takahashi $ X, K und D $ sind die Anfangsposition, die Anzahl der Bewegungen bzw. die zurückgelegte Strecke. Die Bewegungsrichtung kann zwischen positiv und negativ gewählt werden und liegt am nächsten bei 0.
Sei $ i $ die Anzahl der positiven Züge und die Endposition $ d $
X + iD - \left((K-i)D\right) = d\\
X/D + (2i - K) = d/D\\
\frac{X/D - K}{2} + i = d/2D\\
Der absolute Wert von $ d $ liegt nahe bei $ 0 $ ⇒ $ \ frac {X / D - K} {2} + i ; (i = 0,1, \ ldots, K) Finde $ i $, wobei $ $ 0 $ am nächsten ist. ⇒ Setzen Sie $ \ frac {X / D-K} {2} = {\ rm dist} $
if dist > 0
⇒ i = 0
else if dist + K < 0
⇒ i = K
else
⇒ i = -round(dist)
Treffen
X, K, D = list(map(int, input().split()))
dist= (X/D-K)/2
if -dist > K :
i = K
elif dist > 0 :
i = 0
else :
i = -round(dist)
print(abs(X + i*D - ((K-i)*D)))
Ich habe es seit dem D-Problem nicht mehr getan ...