AtCoder ABC180 Dies ist eine Zusammenfassung der Probleme des AtCoder Beginner Contest 180, die am 17.10.2020 (Sa) aufgetreten sind, beginnend mit Problem A und unter Berücksichtigung der Überlegungen. Das Problem wird zitiert, aber bitte überprüfen Sie die Wettbewerbsseite für Details. Klicken Sie hier für die Wettbewerbsseite Offizieller Kommentar PDF
Problemstellung Ich nahm $ A $ Bälle aus der Schachtel, die $ N $ Bälle enthielt, und legte neue $ B $ Bälle ein. Wie viele Bälle sind jetzt in der Box?
abc180a.py
n, a, b = map(int, input().split())
print(n - a + b)
Problemstellung $ N $ Ein Punkt $ (x_1,…, x_N) $ im dimensionalen Raum ist gegeben. Finden Sie die Manhattan-Entfernung, die euklidische Entfernung und die Chebyshev-Entfernung vom Ursprung bis zu diesem Punkt. Jede Entfernung wird jedoch wie folgt berechnet: ・ Manhattan Entfernung:
|x_1|+…+|x_N| · Euklidische Entfernung:\sqrt{|x_1|^2+…+|x_N|^2} Chebyshev Entfernung:max(|x_1|,…,|x_N|)
abc180b.py
n = int(input())
x_list = list(map(int, input().split()))
a = 0
b = 0
c = 0
for x in x_list:
if x < 0:
x *= -1
a += x
b += x * x
if c < x:
c = x
print(a)
print(b**(0.5))
print(c)
Problemstellung Es gibt $ N $ Windbeutel. Finden Sie alle möglichen Personen, die die Windbeutel gleichmäßig teilen können, ohne sie zu teilen.
abc180c.py
def make_divisors(n):
divisors = []
for i in range(1, int(n**0.5)+1):
if n % i == 0:
divisors.append(i)
if i != n // i:
divisors.append(n//i)
divisors.sort()
return divisors
n = int(input())
for x in make_divisors(n):
print(x)
Problemstellung Iroha ist süchtig nach dem Spiel, Haustiere zu erziehen. Iroha hat Takahashi als Haustier. Zuerst ist Takahashis Stärke $ X $ und seine Erfahrung ist $ 0 $. Diese Werte werden durch das folgende Spezialtraining vom Typ $ 2 $ erhöht. ・ Gehe zum Cacommon Gym: Die Kraft wird um $ A $ verdoppelt und der Erfahrungswert um $ 1 $ erhöht. ・ Gehe zum AtCoder-Fitnessstudio: Die Kraft steigt um $ B $ und der Erfahrungswert steigt um $ 1 $. Takahashi entwickelt sich, wenn die Stärke über $ Y $ liegt, aber Iroha findet es süß, wenn es sich nicht entwickelt. Wenn Sie Herrn Takahashi ein spezielles Training auferlegen, damit die Stärke $ Y $ nicht überschreitet, ermitteln Sie bitte den Maximalwert des Erfahrungswerts.
Während des Wettbewerbs habe ich anhand von Protokollen berechnet, wie oft ich in das Cacommon Gym gehen konnte, um keine wiederholte Verarbeitung zu verwenden. (`` `n = int (math.log (b / a / x, a)) + 1``` Gefühl) Als ich mir die Erklärung ansah, las ich, dass die Anzahl der Besuche im Cacommon Gym auf weniger als 64 US-Dollar begrenzt ist, und ich dachte, dass dies wahr ist. Der Code stammt aus dem Kommentar.
abc180d.py
x,y,a,b=map(int,input().split())
ans=0
while a*x<=x+b and a*x<y:
x*=a
ans+=1
print(ans+(y-1-x)//b)
Selbst wenn ich das D-Problem lösen kann, habe ich in letzter Zeit zu viel Zeit mit einem Problem verbracht, und ich konnte das E-Problem nicht lösen, daher möchte ich das Problem etwas flexibler lösen können.
Vielen Dank für das Lesen bis zum Ende.
Recommended Posts