Percer en 1 minute. Il suffit d'écrire.
x = int(input())
if x >= 0:
print(x)
else:
print(0)
Postscript: Je pensais que j'écrivais habituellement «max (x, 0)».
x = int(input())
print(max(x, 0))
Percer en 5 minutes et demie. Ce genre de chose mathématique est difficile ...
Sx, Sy, Gx, Gy = map(int, input().split())
print(Sx + (Gx - Sx) * Sy / (Sy + Gy))
Il se brise en 5 minutes et demie. N ≤ 8, donc si vous essayez tous les modèles, c'est OK. Mais je ne pense pas que je peux le résoudre sans itertools.permutations
....
from itertools import permutations
N, K = map(int, input().split())
T = [list(map(int, input().split())) for _ in range(N)]
result = 0
for p in permutations(range(1, N)):
i = 0
t = 0
for x in p:
t += T[i][x]
i = x
t += T[i][0]
if t == K:
result += 1
print(result)
Percer en 5 minutes Une méthode imos
from itertools import accumulate
N, W = map(int, input().split())
t = [0] * (2 * 10 ** 5 + 1)
for _ in range(N):
S, T, P = map(int, input().split())
t[S] += P
t[T] -= P
if all(x <= W for x in accumulate(t)):
print('Yes')
else:
print('No')
Je n'ai pas pu percer. Je n'ai pas compris l'expression en indice du tableau en un coup d'œil, donc je l'ai corrigé et j'ai divulgué AC un peu plus tard. J'aurais dû en faire une erreur de compilation sans l'insérer, échec.
Je me suis demandé s'il pouvait être calculé uniquement avec le tableau à deux dimensions qui écrit le résultat, mais si je le fais naïf, ce sera * O * (* HW * (* H * + * W *)), donc c'est inutile, et c'est détendu en utilisant SegmentTree La quantité de calcul ne diminue que si la position de la pierre la plus proche est connue par * O * (1), il a donc été conclu qu'un accumulateur pour la gauche, le haut et le haut à gauche est nécessaire. Après cela, vous pouvez remplir le tableau de résultats avec le nombre en fonction de la méthode de déplacement vers celui-ci par balayage raster.
Si vous y réfléchissez, vous n'avez pas besoin de la séquence de résultats. Voici le code que PyPy traverse.
m = 1000000007
H, W = map(int, input().split())
S = [input() for _ in range(H)]
au = [0] * W #Accumulateur vers le haut
aul = [0] * (H + W - 1) #Accumulateur dans le sens supérieur gauche
for h in range(H):
al = 0 #Accumulateur à gauche
for w in range(W):
n = h - w + (W - 1)
if h == 0 and w == 0:
al = 1
au[w] = 1
aul[n] = 1
elif S[h][w] == '#':
al = 0
au[w] = 0
aul[n] = 0
else:
t = al + au[w] + aul[n]
al += t
al %= m
au[w] += t
au[w] %= m
aul[n] += t
aul[n] %= m
print(t % m)
Recommended Posts