[PYTHON] AtCoder Beginner Contest 169 Rapport de participation

AtCoder Beginner Contest 169 Rapport de participation

ABC169A - Multiplication 1

Percer en une minute et demie. Il suffit d'écrire. Cela a pris beaucoup de temps car le test de code n'était pas exécuté facilement.

A, B = map(int, input().split())

print(A * B)

ABC169B - Multiplication 2

Percer en 3 minutes. C'est un problème que même les entiers 64 bits débordent, mais c'est facile car vous n'avez pas à penser à quoi que ce soit en Python. N'oubliez pas de trier pour commencer par 0 OK!

N = int(input())
A = list(map(int, input().split()))

limit = 10 ** 18
A.sort()
result = A[0]
for a in A[1:]:
    result *= a
    if result > limit:
        print(-1)
        exit()
print(result)

ABC169C - Multiplication 3

Il a percé en 3 minutes. Au moment où j'ai vu A ≤ 10 15 </ sup>, j'ai réalisé que c'était un double, alors je me suis échappé en décimal. (10 15 </ sup> est 10 > 3 </ sup> ≒ 2 10 </ sup> Donc, à peu près ≒ 2 50 </ sup>, il est donc proche de la partie immuable 52 bits de double, et vous pouvez voir que c'est un acte de le déborder. .)

from decimal import Decimal

A, B = map(Decimal, input().split())

print(int(A * B))

ABC169D - Div Game

Il a percé en 22 minutes et demie, WA1. Je pensais que je collerais le tamis Eratostenes pour le moment, mais je ne pouvais pas le coller car N ≤ 10 12 </ sup>, alors j'ai commencé par passer au processus jusqu'à sqrt (N). J'ai énuméré p e </ sup> dans, et quand je l'ai divisé dans l'ordre du martèlement et traité la valeur restante, j'ai échoué et j'ai obtenu WA, mais peut-être que ce code est aussi une fausse solution. (Reste correctement) Vous semblez devoir vérifier si c'est un nombre premier?)

from math import sqrt

N = int(input())

rn = int(sqrt(N))
sieve = [0] * (rn + 1)
sieve[0] = -1
sieve[1] = -1
t = [0] * (rn + 1)
for i in range(2, rn + 1):
    if sieve[i] != 0:
        continue
    sieve[i] = i
    j = i
    while j < rn + 1:
        t[j] = 1
        j *= i
    for j in range(i * i, rn + 1, i):
        if sieve[j] == 0:
            sieve[j] = i

result = 0
last = -1
for i in range(2, rn + 1):
    if t[i] == 0:
        continue
    if N % i == 0:
        result += 1
        N //= i
        last = i
if N != 1 and N > rn:
    result += 1
print(result)

Addendum: Je pourrais écrire plus rapidement en utilisant la fonction de factorisation prime que j'ai écrite plus tôt.

def prime_factorize(n):
    result = []
    if n % 2 == 0:
        t = 0
        while n % 2 == 0:
            n //= 2
            t += 1
        result.append((2, t))
    for i in range(3, int(n ** 0.5) + 1, 2):
        if n % i != 0:
            continue
        t = 0
        while n % i == 0:
            n //= i
            t += 1
        result.append((i, t))
        if n == 1:
            break
    if n != 1:
        result.append((n, 1))
    return result


N = int(input())

result = 0
for p, e in prime_factorize(N):
    i = 1
    while e >= i:
        result += 1
        e -= i
        i += 1
print(result)

ABC169E - Count Median

Je n'ai pas pu percer, j'ai réfléchi pendant plus d'une heure, mais plus j'y pense, plus c'est difficile.

PS: Je pensais qu'il y avait une valeur médiane possible entre les valeurs médianes de A i </ sub> et B i </ sub> pendant le concours, mais je suis sûr qu'elles le sont toutes. Je n'ai pas pu l'obtenir. Cependant, il a peut-être fallu être prêt à le cracher avec une lecture pourrie. Avec yukicoder, je le lance hoihoi car il n'y a pas de pena (rires). X <sub On dit que si vous démarrez> i </ sub> avec A i </ sub> et que vous augmentez l'un d'entre eux de 1, la valeur médiane n'augmentera pas ou augmentera de 1 (ou 0,5 si elle est paire). Je peux comprendre que c'est vrai ...

N = int(input())
A = [None] * N
B = [None] * N
for i in range(N):
    a, b = map(int, input().split())
    A[i] = a
    B[i] = b

A.sort()
B.sort()

if N % 2 == 0:
    b = (B[N // 2] + B[(N - 1) // 2]) / 2
    a = (A[N // 2] + A[(N - 1) // 2]) / 2
    print(int((b - a) * 2 + 1))
else:
    print(B[N // 2] - A[N // 2] + 1)

Recommended Posts

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 154 Rapport de participation
AtCoder Beginner Contest 166 Rapport de participation
AtCoder Beginner Contest 153 Rapport de participation
AtCoder Beginner Contest 145 Rapport de participation
AtCoder Débutant Contest 184 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 162 Rapport de participation
AtCoder Débutant Contest 157 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
Note de participation au concours pour débutants AtCoder # 003
AtCoder Grand Contest 041 Rapport de participation
AtCoder Grand Contest 040 Rapport de participation
Rapport de participation au concours régulier AtCoder 105
AtCoder Regular Contest 104 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 177
Concours AtCoder Débutant 172
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
Critique du concours AtCoder Beginner Contest 152
Concours AtCoder Débutant 181 Remarque
Critique du concours AtCoder Débutant 160
Critique du concours AtCoder Débutant 178
Concours AtCoder Débutant 180 Remarque
Critique du concours AtCoder pour débutant 166
AtCoder Débutant Contest 167 Évaluation