[PYTHON] AtCoder Débutant Contest 183 Rapport de participation

AtCoder Débutant Contest 183 Rapport de participation

ABC183A - ReLU

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

ABC183B - Billiards

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

ABC183C - Travel

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)

ABC183D - Water Heater

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

ABC183E - Queen on Grid

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

AtCoder Beginner Contest 181 Rapport de participation
AtCoder Beginner Contest 161 Rapport de participation
AtCoder Beginner Contest 151 Rapport de participation
AtCoder Débutant Contest 176 Rapport de participation
AtCoder Beginner Contest 153 Rapport de participation
AtCoder Beginner Contest 165 Rapport de participation
Rapport de participation au concours AtCoder Débutant 160
AtCoder Beginner Contest 169 Rapport de participation
AtCoder Beginner Contest 178 Rapport de participation
AtCoder Beginner Contest 163 Rapport de participation
AtCoder Beginner Contest 159 Rapport de participation
AtCoder Beginner Contest 164 Rapport de participation
AtCoder Beginner Contest 168 Rapport de participation
Rapport de participation au concours AtCoder Débutant 150
AtCoder Beginner Contest 158 Rapport de participation
Rapport de participation au concours AtCoder Débutant 180
AtCoder Beginner Contest 156 Rapport de participation
AtCoder Beginner Contest 167 Rapport de participation
AtCoder Débutant Contest 179 Rapport de participation
Concours AtCoder Débutant 182
AtCoder Beginner Contest 146 Rapport de participation
AtCoder Beginner Contest 152 Rapport de participation
AtCoder Débutant Contest 155 Rapport de participation
AtCoder Beginner Contest 174 Rapport de participation
AtCoder Beginner Contest 171 Rapport de participation
AtCoder Beginner Contest 149 Rapport de participation
AtCoder Beginner Contest 148 Rapport de participation
AtCoder Débutant Contest 170 Rapport de participation
AtCoder Débutant Contest 183 Rapport de participation
AtCoder Grand Contest 041 Rapport de participation
AtCoder Grand Contest 040 Rapport de participation
Fiche d'inscription au concours ACL pour débutant
Journal de participation Atcoder Beginner Contest 146
AtCoder Chokudai Contest 005 Rapport de participation
AtCoder Grand Contest 047 Rapport de participation
Concours AtCoder Débutant 179
Concours AtCoder Débutant 180
Concours AtCoder Débutant 173
Concours Atcoder Débutant 153
Rapport de participation au concours de programmation AtCoder HHKB 2020
Rapport de participation au concours de programmation AtCoder Acing 2020
Rapport de participation au concours de programmation AtCoder Keyence 2020
Rapport de participation au concours de programmation AtCoder Panasonic 2020
Concours AtCoder Débutant 181 Remarque
Critique du concours AtCoder pour débutant 166
AtCoder Débutant Contest 167 Évaluation
Rapport de participation au concours d'entraînement de la bibliothèque AtCoder (Python)
Concours AtCoder Débutant 182 Remarque
Critique du concours AtCoder
AtCoder Débutant Contest 169 Évaluation
Critique du concours AtCoder Débutant 181
AtCoder Débutant Contest 171 Critique
Critique du concours AtCoder pour débutant 182
Critique du concours AtCoder Débutant 180
Concours AtCoder pour débutants 156 WriteUp
Critique du concours AtCoder pour débutant 177
AtCoder Débutant Contest 168 Critique