AtCoder # 35 quotidien avec Python

introduction

Dernière fois Le camp d'entraînement pour les débutants arrive.

#35 ABC096-C

** Pensées ** Recherchez un carré noir isolé. Je vérifie tous les points pendant quelques minutes.

h, w = map(int,input().split())
s = [input() for _ in range(h)]

for i in range(h):
    for j in range(w):
        if s[i][j] == '#':
            check = 0
            for x, y in ([1,0],[0,1],[0,-1],[-1,0]):
                new_h, new_w = i + x, j + y
                #print(new_h,new_w)
                if new_h < 0 or new_h >= h or new_w < 0 or new_w >= w:
                    continue
                if s[new_h][new_w] == '.':
                    check += 1
            if check == 4: #Il n'y a pas de noir dans 4 directions
                print('No')
                quit()
print('Yes')

ABC063-C

** Pensées ** Le point culminant est lorsque vous répondez correctement à toutes les questions. Cependant, si le nombre de réponses correctes à toutes les questions est un multiple de 10, il sera égal à 0 tel quel. Par conséquent, le mod 10 est confirmé en soustrayant du score le plus élevé par ordre croissant de score.

n = int(input())
s = [int(input()) for _ in range(n)]

s.sort()
ans = sum(s)
if ans % 10 != 0:
    print(ans)
    quit()
else:
    for i in range(n):
        if (ans-s[i]) % 10 != 0:
            print(ans-s[i])
            quit()

print(0)

ARC073-C

** Pensées ** Le traitement est divisé selon que la douche est activée ou non à $ t_i $. S'il y a une douche, le temps de douche restant à $ t_i $ sera écrasé par $ t $. S'il n'y a pas de douche, il y aura une douche de $ t_i $ à $ t + t_i $.

n, t = map(int,input().split())
time = list(map(int,input().split()))

ans = 0
wait = 0
for i in range(n):
    if i == 0:
        ans += t
        wait += t
    if wait <= time[i]:
        ans += t
        wait = time[i] + t
    else:
        c = (wait - time[i])
        ans -= c
        ans += t
        wait = time[i] + t

print(ans)

ABC088-C

** Pensées ** Comme (2,1) - (1,1) et (3,1) - (2,1), la différence entre les mêmes colonnes et lignes sera la même, donc implémentez avec for. ← Cela semble plus facile à résoudre

c = [list(map(int,input().split())) for _ in range(3)]

for i in range(2):
    for j in range(1,3):
        if c[i][j] - c[i][j-1] != c[i+1][j] - c[i+1][j-1]:
            print('No')
            quit()
for i in range(1,3):
    for j in range(2):
        #print(c[i][j] , c[i-1][j])
        #print(c[i][j+1] , c[i-1][j+1])
        if c[i][j] - c[i-1][j] != c[i][j+1] - c[i-1][j+1]:
            print('No')
            quit()
print('Yes')

diverta 2019 Programming Contest-B

** Pensées ** Recherche complète. Je l'ai TLE avec python, donc je l'ai sorti avec pypy.

r, g, b, n = map(int,input().split())

ans = 0
for i in range(n//r+1):
    for j in range(n//g+1):
        bule_ball = (n - (r * i + g * j)) // b
        sum_ball = bule_ball * b + i * r + j * g
        #print(i,j,bule_ball)
        if bule_ball >= 0 and sum_ball == n:
            ans += 1

print(ans)

ABC073-C

** Pensées ** Si vous vérifiez en utilisant une liste de contrôle de nombres, $ A_i $ est grand, donc TLE. Alors, triez $ A $ et comparez pour chaque élément adjacent. Ici, si le nombre d'occurrences de $ A_i $ est pair, il ne restera pas jusqu'à la fin, donc l'étrangeté du nombre d'apparitions est jugée. En termes de booléen, l'indicateur qui était initialement True lorsque le nombre d'occurrences était même est devenu la valeur inversée à la limite avec l'élément suivant. Par conséquent, l'authenticité du drapeau lorsque les éléments adjacents ne sont pas les mêmes est évaluée.

n = int(input())
a = [int(input()) for _ in range(n)]

a.sort()
a.append(0)
ans = 0
flag = True
for i in range(1,n+1):
    if a[i] == a[i-1]:
        flag = not flag
    else:
        if flag:
            ans += 1
        flag = True
    #print(flag)
    #print(a[i])
print(ans)

Résumé

Si je ne pouvais pas écrire une recherche complète proprement, j'aurais dû la lancer avec PyPy. à plus,

Recommended Posts

AtCoder # 36 quotidien avec Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 6 en Python
Daily AtCoder # 18 en Python
Daily AtCoder # 53 en Python
Daily AtCoder # 33 en Python
AtCoder # 7 tous les jours avec Python
AtCoder # 24 tous les jours avec Python
Daily AtCoder # 37 en Python
AtCoder # 8 tous les jours avec Python
Daily AtCoder # 42 en Python
Daily AtCoder # 17 avec Python
Daily AtCoder # 54 en Python
Daily AtCoder # 11 en Python
Daily AtCoder # 47 avec Python
Daily AtCoder # 13 en Python
AtCoder # 45 quotidien avec Python
AtCoder # 30 tous les jours en Python
AtCoder # 40 quotidien avec Python
AtCoder # 10 quotidien avec Python
AtCoder # 5 tous les jours avec Python
Daily AtCoder # 28 en Python
AtCoder # 39 quotidien avec Python
Daily AtCoder # 19 en Python
Daily AtCoder # 52 en Python
Daily AtCoder # 3 en Python
Daily AtCoder # 14 avec Python
Daily AtCoder # 50 avec Python
Daily AtCoder # 26 avec Python
AtCoder quotidien # 4 avec Python
Daily AtCoder # 43 en Python
Daily AtCoder # 29 en Python
Tous les jours avec Python AtCoder # 22
Daily AtCoder # 49 en Python
Daily AtCoder # 27 en Python
Daily AtCoder # 25 avec Python
Daily AtCoder # 12 en Python
Daily AtCoder # 48 en Python
Daily AtCoder # 23 en Python
Daily AtCoder # 34 en Python
AtCoder # 51 quotidien avec Python
Daily AtCoder # 31 en Python
AtCoder # 35 quotidien avec Python
AtCoder # 9 tous les jours avec Python
Daily AtCoder # 44 avec Python
Daily AtCoder # 41 en Python
Atcoder ABC164 A-C en Python
atCoder 173 Python
Note d'entrée Python dans AtCoder
Atcoder ABC167 A-D en Python
Atcoder ABC165 A-D en Python
Atcoder ABC169 A-E en Python
AtCoder ABC177 A-D avec python
Résoudre Atcoder ABC169 A-D avec Python
[Python] Connaissances de base utilisées dans AtCoder
Quadtree en Python --2
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda