Daily AtCoder # 44 avec Python

introduction

Dernière fois Résoudre 5 problèmes de Boot Camp

#44 ABC056-C

** Pensées ** La somme des entiers non négatifs jusqu'à i est $ \ frac {1} {2} n (n + 1) $}}. Cette somme devient $ X $ lorsque $ \ frac {1} {2} n (n + 1) = X $, et lors de la résolution de $ n $, $ n = \ frac {-1 \ pm { \ sqrt {8X + 1}}} {2} $. L'ajout du symbole ceil à la solution de cette équation donne $ \ lceil \ frac {-1 \ pm {\ sqrt {8X + 1}}} {2} \ rceil $. Voilà la réponse.

import math
x = int(input())

f = (-1+math.sqrt(8*x+1)) / 2
print(math.ceil(f))

ABC066-C

** Pensées ** Si vous inversez chaque opération, vous mourrez, utilisez donc booléen pour gérer si elle est inversée. Nous utilisons deque car nous n'accédons qu'aux côtés gauche et droit des données. Il ne vous reste plus qu'à mettre en œuvre l'opération

from collections import deque
n = int(input())
a = list(input().split())

b = deque([])
r = False
for i in range(n):
    if r:
        b.appendleft(a[i])
    else:
        b.append(a[i])
    r = not r

if r:
    b = reversed(b)
ans = ' '.join(b)
print(ans)

Sujet similaire

ARC069-C

** Pensées ** Tout d'abord, considérez combien de scc peuvent être créés sans synthétiser c en s. Le scc qui peut être créé sans synthétiser c en s est $ min (N, M // 2) $. Ensuite, considérons le cas du compositing. Lorsqu'ils sont combinés, deux c deviennent un s, donc si vous voulez faire s à partir de c, vous avez besoin de quatre cs. Tout ce que vous avez à faire est de le mettre en œuvre.

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

if m - 2 * n >= 0: #Si le scc peut être fait sans synthétiser
    ans = n + (m-2*n)//4
    print(ans)
else:
    print(m//2)

ABC130-C

** Pensées ** Si le point à diviser est au centre, il existe d'innombrables méthodes de division. En outre, la plus petite zone une fois divisée représente la moitié du total.

w, h, x, y = map(int,input().split())

s = w * h / 2
if 2*x == w and 2*y == h:
    print(s,1)
else:
    print(s,0)

ARC081-C

** Pensées ** Compter l'élément $ A_i $ sera probablement TLE, donc nous le compterons d'une manière différente. Il est implémenté par tri et comptage par délimiteur de valeur. S'il y a 4 côtés les plus longs ou plus, le carré qui peut être fait de ces côtés sera le maximum. Sinon, ce sera un rectangle avec deux premiers côtés et deux seconds côtés.

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

a.sort(reverse=True)
c = 0
v = []
for i in range(n-1):
    if a[i] != a[i+1]:
        c += 1
        if c >= 2: #Ajouter uniquement lorsqu'il y a deux côtés ou plus
            v.append([a[i],c])
        c = 0
    else:
        c += 1
if a.count(a[-1]) >=2:
    v.append([a[-1],a.count(a[-1])])
if len(v) == 0: #Si v est vide, vous ne pouvez pas faire de carré
    print(0)
elif v[0][1] >= 4: #Devenir un carré
    print(v[0][0]**2)
elif len(v) >= 2: #Rectangle
    print(v[0][0]*v[1][0])

Résumé

Cela suffit à résoudre. à 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
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
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 # 23 en Python
Daily AtCoder # 34 en Python
AtCoder # 51 quotidien avec 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 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
[Python] Connaissances de base utilisées dans AtCoder
Quadtree en Python --2
Python en optimisation
Métaprogrammation avec Python
Python 3.3 avec Anaconda