Dernière fois Si vous avez des problèmes recommandés, veuillez laisser un commentaire ou Twitter. Aujourd'hui, c'est 30 jours.
#30 ABC154-D
** Pensées ** Lorsque j'ai calculé la valeur attendue des dés $ K $ qui sont simplement continus, j'ai obtenu TLE. Même si je l'ai soumis avec PyPy, c'était TLE, alors j'ai lu l'explication. Si vous utilisez la somme cumulée, vous pouvez réduire le montant du calcul. Les valeurs attendues peuvent être calculées avec $ \ frac {1} {2} (p [i] + 1) $. La somme cumulative est implémentée à l'aide de numpy. J'aime 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)
Explication détaillée de la somme cumulée
** Pensées ** Calculez la valeur attendue pour chaque dé avec l'instruction for. Si le jet de dés est inférieur ou égal à K, tirez au sort. Calculez le nombre de lancers de pièces avec while et comptez $ \ 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)
Je ne suis pas doué pour les problèmes de probabilité et de valeur attendue, je dois donc revoir le nombre A. A bientôt, bonne nuit.
Recommended Posts