Atcoder ABC169 A-E in Python

Es war die schlechteste Leistung aller Zeiten: (

A: Multiplication 1 TU es einfach.

ABC169a.py


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

print(a*b)

B: Multiplication 2 Obwohl $ N <10 ^ 5 $, wird es TLE, wenn Sie es normal drehen. Ich habe jedoch versucht, unterwegs aus der Schleife herauszukommen. ~~ Es kann einige Zeit dauern, bis berechnet ist, wann es überläuft (obwohl es WA ist, wenn es überhaupt überläuft). ~~

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 Kommentar AC. Wenn Sie der Meinung sind, dass Sie eine hochpräzise Berechnung benötigen, verwenden Sie beim Umgang mit Gleitkommatypen einfach Dezimal anstelle von Gleitkomma. Wissensproblem.

ABC169c.py


from decimal import Decimal
from math import floor

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

print(floor(a*b))

D: Div Game Wie viele Arten von $ z $ kann ich vorbereiten? Mit anderen Worten. Da $ z $ durch die Potenz der Primfaktoren von $ N $ ausgedrückt werden kann, wird die Anzahl der gleichen Primfaktoren für jeden Primfaktor gezählt und 2 oder weniger ⇒ 1 und 3 oder mehr und weniger als 6 ⇒ 2 ($ p ^ 1 $, $) p ^ 2 ), 6 oder mehr und weniger als 10 ⇒ 3 ( p ^ 1 $, $ p ^ 2 $, $ p ^ 3 $) usw. von $ z $, die durch jeden Primfaktor ausgedrückt werden können Zähle einfach die Zahlen. Da es $ 2 ^ {43}> 10 ^ {12} $ ist, ist es in Ordnung, wenn Sie über die Anzahl jedes Primfaktors bis zu höchstens 42 nachdenken. Die Ausnahme ist 0, wenn es 1 ist. Für den Funktionsteil der Primfaktorisierung habe ich auf [hier] verwiesen (https://qiita.com/snow67675476/items/e87ddb9285e27ea555f8).

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 Ein Wert, der als Gesamtmedianwert zwischen dem Medianwert der Menge von A und dem Medianwert der Menge von B genommen werden kann. Wenn N gerade ist, wird es in Schritten von 0,5 sein, und wenn es ungerade ist, wird es in Schritten von 1 sein.

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)

Übrigens mag ich dieses Mal das B-C-Fragenformat nicht, obwohl es ungefähr acht WAs sind. Wenn Sie den gleichen Verstand verwenden, möchte ich über einen Algorithmus nachdenken, der die Einschränkungen und nicht die Implementierungsbeschränkungen selbst durchbricht. Wenn diese Fragen weiterhin gestellt werden, wird Atcoder meiner Meinung nach meinen unerfahrenen Freunden nicht empfohlen. Es war.

Recommended Posts

Atcoder ABC166 A-E in Python
Atcoder ABC169 A-E in Python
Atcoder ABC164 A-C in Python
Atcoder ABC167 A-D in Python
Atcoder ABC165 A-D in Python
AtCoder ABC177 A-D mit Python
AtCoder ABC 174 Python
AtCoder ABC 175 Python
Löse den Atcoder ABC169 A-D mit Python
Täglicher AtCoder # 36 mit Python
AtCoder # 2 jeden Tag mit Python
Täglicher AtCoder # 32 in Python
Täglicher AtCoder # 6 in Python
Täglicher AtCoder # 53 in Python
Täglicher AtCoder # 33 in Python
Täglicher AtCoder # 7 in Python
Täglicher AtCoder # 37 in Python
AtCoder # 8 jeden Tag mit Python
Täglicher AtCoder # 21 mit Python
Täglicher AtCoder # 38 in Python
Täglicher AtCoder # 11 in Python
Täglicher AtCoder # 15 in Python
Täglicher AtCoder # 47 mit Python
Täglicher AtCoder # 13 in Python
Täglicher AtCoder # 45 mit Python
AtCoder # 30 jeden Tag in Python
Täglicher AtCoder # 10 mit Python
Täglicher AtCoder # 28 in Python
Täglicher AtCoder # 20 in Python
Täglicher AtCoder # 19 in Python
Täglicher AtCoder # 52 in Python
Täglicher AtCoder # 3 in Python
Täglicher AtCoder # 50 mit Python
Täglicher AtCoder # 26 mit Python
Täglicher AtCoder # 4 mit Python
Täglicher AtCoder # 43 in Python
Täglicher AtCoder # 29 in Python
Jeden Tag mit Python AtCoder # 22
Täglicher AtCoder # 27 in Python
AtCoder # 1 jeden Tag mit Python
Löse ABC169 mit Python
Täglicher AtCoder # 25 mit Python
Täglicher AtCoder # 16 in Python
Täglicher AtCoder # 12 in Python
Täglicher AtCoder # 48 in Python
Täglicher AtCoder # 23 in Python
Täglicher AtCoder # 34 in Python
Täglicher AtCoder # 51 mit Python
Täglicher AtCoder # 31 in Python
Jeden Tag mit Python AtCoder # 46
Täglicher AtCoder # 35 mit Python
Täglicher AtCoder # 44 mit Python
Jeden Tag mit Python AtCoder # 41
AtCoder ABC 177 Python (A ~ E)
Löse AtCoder ABC166 mit Python
AtCoder ABC 178 Python (A ~ E)
Löse ABC176 E in Python
Python-Eingabehinweis in AtCoder
AtCoder ABC 176 Python (A ~ E)