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
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