Daily AtCoder # 37 en Python

introduction

Dernière fois Nous ferons un camp d'entraînement pour les débutants.

#37 ARC091-C

** Pensées ** Le nombre d'opérations étant pair, l'arête sera toujours table à la fin. De même, les éléments autres que les bords sont manipulés un nombre impair de fois, ils sont donc retournés à la fin. Basé sur l'idée ci-dessus, le nombre de feuilles au verso à la fin est de $ (n-2) * (m-2) $. Cependant, cela ne vaut pas pour $ n \ leq2, m \ leq2 . Par conséquent, le traitement des exceptions ( n \ leq2, m \ leq2 $) sera écrit séparément.

n, m = map(int,input().split())

if n == 1 and m == 1:
    print(1)
elif n == 1 or m == 1:
    print(max(max(n,m)-2,0))
else:
    print((n-2)*(m-2))

ARC080-C

** Pensées ** Si le multiple de 4 est supérieur à la moitié de tous les éléments, vous pouvez créer une séquence de nombres qui satisfait à la condition. Ce à quoi nous devons penser ici est le processus de 2. Contrairement aux autres non-multiples de 4, 2 satisfait la condition si elle est continue. Par conséquent, en soustrayant le nombre de c2 de n et en y ajoutant 1, le nombre de 2 peut être ignoré dans le calcul.

n = int(input())
a = list(map(int,input().split()))

c1 = 0
c2 = 0
c4 = 0
for i in range(n):
    if a[i] % 4 == 0:
        c4 += 1
    elif a[i] % 2 == 0:
        c2 += 1
    elif a[i] == 1:
        c1 += 1

n -= c2
c2 %= 2
n += c2
f = n // 2

if c4 >= f:
    print('Yes')
    quit()
else:
    print('No')

ABC043-B

** Pensées ** Prenez simplement les s un par un avec for et ajoutez-le à la chaîne de caractères. «B» a été implémenté en tranches.

s = input()
ans = ''
for i in range(len(s)):
    if s[i] == 'B':
        ans = ans[:-1]
    elif s[i] == '0':
        ans += '0'
    else:
        ans += '1'
    #print(ans)
print(ans)

ABC131-C

** Pensées ** Je pense que c'est un problème entier. Explication de la formule

import fractions
a, b, c, d = map(int,input().split())

l = int(fractions.gcd(c,d) * c / fractions.gcd(c,d) * d / fractions.gcd(c,d))
#print(l)
x = b // c - a // c
y = b // d - a // d
z = b // l - a // l
if a % c == 0 or a % d == 0:
    print(int(b-a-(x+y-z)))
else:
    print(int(b-a-(x+y-z))+1)
#print(x,y,z)

ABC109-C

** Pensées ** La réponse est l'engagement maximum de la différence entre les éléments, alors calculez simplement

import fractions
n, y = map(int,input().split())
x = list(map(int,input().split()))

x.append(y)
x.sort()
d = []
for i in range(n):
    d.append(x[i+1]-x[i])
if len(d) !=1:
    ans = fractions.gcd(d[0],d[1])
    for i in range(n-1):
        ans = fractions.gcd(ans,d[i])
    print(ans)
else:
    ans = d[0]
    print(ans)

ABC116-C

** Pensées ** Il en va de même pour changer la hauteur de toutes les fleurs de 0 à $ h $ et pour changer la hauteur de toutes les fleurs de $ h $ à 0. Les fleurs adjacentes qui n'ont pas atteint chaque $ h $ seront arrosées moins souvent. N'arrosez pas non plus les fleurs qui ont atteint $ h $. Par conséquent, nous vérifions si le nombre de fleurs est égal à 0 et calculons la plage maximale pouvant être arrosée en une seule fois.

n = int(input())
h = list(map(int,input().split()))

ans = 0
for i in range(max(h)):
    c = 0
    for j in range(n):
        if h[j] != 0:
            h[j] -= 1
            c += 1
        else:
            if c != 0:
                ans += 1
                c = 0
        if j == n-1 and c != 0:
            ans += 1
print(ans)

Résumé

Je dois finir mes devoirs scolaires ... à plus.

Recommended Posts

AtCoder # 36 quotidien avec Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 18 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
AtCoder # 21 quotidien avec Python
Daily AtCoder # 17 avec Python
Daily AtCoder # 38 en Python
Daily AtCoder # 54 en Python
Daily AtCoder # 11 en Python
Daily AtCoder # 15 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 # 20 en 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
AtCoder # 1 tous les jours avec Python
Daily AtCoder # 25 avec Python
Daily AtCoder # 16 en 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
Daily AtCoder # 46 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 ABC166 A-E en Python
Atcoder ABC169 A-E en Python
AtCoder ABC177 A-D avec python
Résoudre Atcoder ABC169 A-D avec Python