[PYTHON] AtCoder Beginner Contest 183 Teilnahmebericht

AtCoder Beginner Contest 183 Teilnahmebericht

ABC183A - ReLU

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))

ABC183B - Billiards

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))

ABC183C - Travel

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)

ABC183D - Water Heater

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')

ABC183E - Queen on Grid

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

AtCoder Beginner Contest 181 Teilnahmebericht
AtCoder Beginner Contest 161 Teilnahmebericht
AtCoder Beginner Contest 151 Teilnahmebericht
AtCoder Beginner Contest 176 Teilnahmebericht
AtCoder Beginner Contest 153 Teilnahmebericht
AtCoder Beginner Contest 165 Teilnahmebericht
AtCoder Beginner Contest 160 Teilnahmebericht
AtCoder Beginner Contest 169 Teilnahmebericht
AtCoder Beginner Contest 178 Teilnahmebericht
AtCoder Beginner Contest 163 Teilnahmebericht
AtCoder Beginner Contest 159 Teilnahmebericht
AtCoder Beginner Contest 164 Teilnahmebericht
AtCoder Beginner Contest 168 Teilnahmebericht
AtCoder Beginner Contest 150 Teilnahmebericht
AtCoder Beginner Contest 158 Teilnahmebericht
AtCoder Beginner Contest 180 Teilnahmebericht
AtCoder Beginner Contest 156 Teilnahmebericht
AtCoder Beginner Contest 167 Teilnahmebericht
AtCoder Beginner Contest 179 Teilnahmebericht
AtCoder Anfängerwettbewerb 182
AtCoder Anfängerwettbewerb 146 Teilnahmebericht
AtCoder Beginner Contest 152 Teilnahmebericht
AtCoder Beginner Contest 155 Teilnahmebericht
AtCoder Beginner Contest 174 Teilnahmebericht
AtCoder Beginner Contest 171 Teilnahmebericht
AtCoder Beginner Contest 149 Teilnahmebericht
AtCoder Anfängerwettbewerb 148 Teilnahmebericht
AtCoder Beginner Contest 170 Teilnahmebericht
AtCoder Beginner Contest 183 Teilnahmebericht
AtCoder Grand Contest 041 Teilnahmebericht
AtCoder Grand Contest 040 Teilnahmebericht
Eintragsdatensatz für den ACL-Anfängerwettbewerb
Atcoder Anfängerwettbewerb 146 Teilnahme Tagebuch
Teilnahmebericht des AtCoder Chokudai Contest 005
AtCoder Grand Contest 047 Teilnahmebericht
AtCoder Anfängerwettbewerb 179
AtCoder Anfängerwettbewerb 180
AtCoder Anfängerwettbewerb 173
Atcoder Anfänger Wettbewerb 153
Teilnahmebericht des AtCoder HHKB Programmierwettbewerbs 2020
Teilnahmebericht des AtCoder Acing Programming Contest 2020
Teilnahmebericht des AtCoder Keyence Programming Contest 2020
Teilnahmebericht des AtCoder Panasonic Programming Contest 2020
AtCoder Anfängerwettbewerb 181 Hinweis
AtCoder Anfängerwettbewerb 166 Bewertung
AtCoder Anfängerwettbewerb 167 Bewertung
Teilnahmebericht zum AtCoder Library Practice Contest (Python)
AtCoder Anfängerwettbewerb 182 Hinweis
AtCoder Beginner Contest 164 Bewertung
AtCoder Beginner Contest 169 Bewertung
AtCoder Beginner Contest 181 Bewertung
AtCoder Beginner Contest 171 Bewertung
AtCoder Beginner Contest 182 Bewertung
AtCoder Beginner Contest 180 Bewertung
AtCoder Anfängerwettbewerb 156 WriteUp
AtCoder Anfängerwettbewerb 177 Rückblick
AtCoder Anfängerwettbewerb 168 Bewertung