Letztes Mal Wenn Sie empfohlene Probleme haben, hinterlassen Sie bitte einen Kommentar oder Twitter. Heute sind 30 Tage.
#30 ABC154-D
** Gedanken ** Als ich den erwarteten Wert von $ K $ Würfeln berechnet habe, die einfach kontinuierlich sind, habe ich TLE erhalten. Selbst wenn ich es mit PyPy eingereicht habe, war es TLE, also habe ich die Erklärung gelesen. Wenn Sie die kumulative Summe verwenden, können Sie den Rechenaufwand reduzieren. Erwartete Werte können mit $ \ frac {1} {2} (p [i] + 1) $ berechnet werden. Die kumulative Summe wird mit numpy implementiert. Ich liebe Numpy
import numpy as np
n, k = map(int,input().split())
p = list(map(int,input().split()))
e = [(i+1)/2 for i in p]
e = np.cumsum(e)
e = np.append(0,e)
ans = 0
for i in range(n-k+1):
ans = max(e[i+k]-e[i],ans)
print(ans)
Detaillierte Erläuterung der kumulierten Summe
** Gedanken ** Berechnen Sie den erwarteten Wert für jeden Würfel mit der for-Anweisung. Wenn der Würfelwurf K oder weniger ist, werfen Sie die Münze. Berechnen Sie die Anzahl der Münzwürfe mit while und zählen Sie $ \ frac {1} {2} $.
n, k = map(int,input().split())
ans = 0
for i in range(1,n+1):
count = 0
if i < k:
while i < k:
i *= 2
count += 1
ans += 1/n * (1/2)**count
print(ans)
Ich bin nicht gut in Problemen mit der Wahrscheinlichkeit und dem erwarteten Wert, daher muss ich die Zahl A überprüfen. Wir sehen uns wieder, gute Nacht.
Recommended Posts