Brechen Sie in 1 Minute durch. Schreiben Sie einfach.
x = int(input())
if x >= 0:
print(x)
else:
print(0)
Nachtrag: Ich dachte, ich hätte normalerweise "max (x, 0)" geschrieben.
x = int(input())
print(max(x, 0))
Brechen Sie in 5 ½ Minuten durch. Diese Art von mathematischer Sache ist schwer ...
Sx, Sy, Gx, Gy = map(int, input().split())
print(Sx + (Gx - Sx) * Sy / (Sy + Gy))
Es bricht in 5 ½ Minuten durch. N ≤ 8, wenn Sie also alle Muster ausprobieren, ist es in Ordnung. Aber ich habe nicht das Gefühl, dass ich es ohne itertools.permutations
lösen kann ....
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)
In 5 Minuten durchbrechen. Ein Schuss der Imos-Methode.
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')
Ich konnte nicht durchbrechen. Ich habe den tiefgestellten Ausdruck des Arrays auf einen Blick nicht verstanden, also habe ich ihn behoben und wenig später AC durchgesickert. Ich hätte es zu einem Kompilierungsfehler machen sollen, ohne es einzufügen, Fehler.
Ich habe mich gefragt, ob es nur mit dem zweidimensionalen Array berechnet werden kann, das das Ergebnis schreibt, aber wenn ich es naiv mache, ist es * O * (* HW * (* H * + * W *)), also ist es nutzlos und es wird mit SegmentTree entspannt Der Berechnungsaufwand nimmt nicht ab, es sei denn, die Position des nächsten Steins ist * O * (1) bekannt. Daher wurde schließlich der Schluss gezogen, dass ein Akkumulator in der linken, oberen und linken Richtung erforderlich ist. Danach können Sie das Ergebnisarray entsprechend der Methode zum Verschieben per Raster-Scan mit der Nummer füllen.
Wenn Sie darüber nachdenken, brauchten Sie die Ergebnissequenz nicht. Unten finden Sie den Code, den PyPy durchläuft.
m = 1000000007
H, W = map(int, input().split())
S = [input() for _ in range(H)]
au = [0] * W #Speicher nach oben
aul = [0] * (H + W - 1) #Akku in Richtung oben links
for h in range(H):
al = 0 #Akku links
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