Atcoder ABC169 A-E en Python

C'était la pire performance de tous les temps: (

A: Multiplication 1 Simplement fais-le.

ABC169a.py


a,b=map(int,input().split())

print(a*b)

B: Multiplication 2 Même si $ N <10 ^ 5 $, si vous le tournez normalement, il devient TLE. Cependant, j'ai essayé de sortir de la boucle en cours de route. ~~ Le calcul du débordement peut prendre un certain temps (bien que ce soit WA quand il déborde en premier lieu). ~~

ABC169b.py


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

ans=1

if 0 in a:
    print(0)
    exit()

for i in a:
   ans*=i
   if ans>10**18:
    print(-1)
    exit()


print(ans)

C: Multiplication 3 Commentaire AC. Si vous pensez avoir besoin d'un calcul de haute précision, utilisez simplement Decimal au lieu de Float lorsque vous traitez avec des types à virgule flottante. Problème de connaissance.

ABC169c.py


from decimal import Decimal
from math import floor

a,b=map(Decimal,input().split())

print(floor(a*b))

D: Div Game Combien de types de $ z $ puis-je préparer? En d'autres termes. Puisque $ z $ peut être exprimé par la puissance des facteurs premiers de $ N , le nombre des mêmes facteurs premiers est compté pour chaque facteur premier, et 2 ou moins ⇒ 1 et 3 ou plus et moins de 6 ⇒ 2 ( p ^ 1 $, $) p ^ 2 ), 6 ou plus et moins de 10 ⇒ 3 ( p ^ 1 $, $ p ^ 2 $, $ p ^ 3 $), etc. de $ z $ qui peut être exprimé par chaque facteur premier Comptez simplement les chiffres. Puisqu'il est $ 2 ^ {43}> 10 ^ {12} $, ce n'est pas grave si vous pensez au nombre de chaque facteur premier jusqu'à 42 au plus. L'exception est 0 si elle vaut 1. Pour la partie fonction de la factorisation des nombres premiers, je me suis référé à ici.

ABC169d.py


def factorization(n):
    arr = []
    temp = n
    for i in range(2, int(-(-n**0.5//1))+1):
        if temp%i==0:
            cnt=0
            while temp%i==0:
                cnt+=1
                temp //= i
            arr.append([i, cnt])

    if temp!=1:
        arr.append([temp, 1])

    if arr==[]:
        arr.append([n, 1])

    return arr
    
a=factorization(int(input()))

b=[1,3,6,10,15,21,28,36,43]

ans=0
if len(a)==1 and a[0][0]==1:
    print(0)
    exit()

for i in a:
    for j in range(len(b)):
        if i[1]<b[j]:
            ans+=j
            break
print(ans)

E: Count Median Une valeur qui peut être considérée comme la valeur médiane globale entre la valeur médiane de l'ensemble de A et la valeur médiane de l'ensemble de B. Si N est pair, ce sera par incréments de 0,5, et s'il est impair, ce sera par incréments de 1.

ABC169e.py


def median(q):
    l=len(q)
    q=sorted(q,reverse=True)
    if l%2==0:
        return (q[int(l/2)]+q[int(l/2)-1])/2
    else:
        return q[int((l+1)/2-1)]

n=int(input())

a=[]
b=[]

for i in range(n):
   x,y=map(int,input().split())
   a.append(x)
   b.append(y)
   
med_a=median(a)
med_b=median(b)

if n%2==0:
    print(int(2*(med_b-med_a)+1))
    
else:
    print((med_b-med_a)+1)

Au fait, personnellement, je n'aime pas le format des questions B-C cette fois, bien qu'il s'agisse d'environ huit WA. Si vous utilisez le même esprit, j'aimerais penser à un algorithme qui brise les contraintes, pas aux contraintes d'implémentation elles-mêmes ... Si ces questions continuent à se poser, j'ai l'impression qu'Atcoder n'est pas recommandé à mes amis novices. C'était.

Recommended Posts

Atcoder ABC166 A-E en Python
Atcoder ABC169 A-E en Python
Atcoder ABC164 A-C en Python
Atcoder ABC167 A-D en Python
Atcoder ABC165 A-D en Python
AtCoder ABC177 A-D avec python
AtCoder ABC 174 Python
AtCoder ABC 175 Python
Résoudre Atcoder ABC169 A-D avec Python
AtCoder # 36 quotidien avec Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 6 en Python
Daily AtCoder # 53 en Python
Daily AtCoder # 33 en Python
AtCoder # 7 tous les jours avec Python
Daily AtCoder # 37 en Python
AtCoder # 8 tous les jours avec Python
AtCoder # 21 quotidien avec Python
Daily AtCoder # 38 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 # 10 quotidien avec Python
Daily AtCoder # 28 en Python
Daily AtCoder # 20 en Python
Daily AtCoder # 19 en Python
Daily AtCoder # 52 en Python
Daily AtCoder # 3 en 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 # 27 en Python
AtCoder # 1 tous les jours avec Python
Résolvez ABC169 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
Daily AtCoder # 44 avec Python
Daily AtCoder # 41 en Python
AtCoder ABC 177 Python (A ~ E)
Résolvez AtCoder ABC166 avec python
AtCoder ABC 178 Python (A ~ E)
Résoudre ABC176 E en Python
Note d'entrée Python dans AtCoder
AtCoder ABC 176 Python (A ~ E)