Brechen Sie in zweieinhalb Minuten durch. Es ist einfach, aber ich dachte, es wäre schwierig, etwas Einfaches zu schreiben.
A = int(input())
B = int(input())
print(*(set([1, 2, 3]) - set([A, B])))
ABC148B - Strings with the Same Length
Brechen Sie in anderthalb Minuten durch. Schreiben Sie einfach. Ich habe es nicht benutzt, weil ich dachte, es sei ein Reißverschluss.
N = int(input())
S, T = input().split()
print(''.join(S[i] + T[i] for i in range(N)))
In 3 Minuten durchbrechen. Die Antwort ist das minimale gemeinsame Vielfache, aber ich habe mich gefragt, wie ich es lösen kann. Wenn ich die maximale gemeinsame Anzahl kenne, habe ich "Minimum common multiple Python" gegoogelt und lcm (a, b) = a gegoogelt * b / gcd (a, b)
kam heraus, also schreibe es und beende.
from fractions import gcd
A, B = map(int, input().split())
print(A * B // gcd(A, B))
In ungefähr 20 Minuten durchbrechen? WA1. Ich habe eine Weile über D nachgedacht, aber es war schwierig, also habe ich es übersprungen und es versucht. Vorerst habe ich f (n) naiv implementiert und versucht, es zu verschieben. Immer wenn N ungerade ist, 0 wurde sofort verstanden.
Als Eingabebeispiel 3 mit N // 10
gespielt wurde, war es ganz anders. Als ich versuchte, es um n zu erhöhen, wurde die Zahl um f (50) verschoben, und 50 enthält 5, sodass es zu einem Auto wird . N. // 10 + N // 50
stimmt nicht mit dem Eingabebeispiel 3 überein, und die nächsten 250 Autos im Gehirn werden schließlich verstanden und implementiert. While t <= N:
ist while t <N: Ich schrieb
und aß WA, aber es war sicher AC.
from sys import exit
N = int(input())
if N % 2 == 1:
print(0)
exit()
result = 0
t = 10
while t <= N:
result += N // t
t *= 5
print(result)
Es bricht in ungefähr 27 Minuten durch. Ich habe nur über die Verarbeitung von rechts nachgedacht, es als schwierig übersprungen und bin von E zurückgekommen, aber es ist offensichtlich einfach aus der Situation der Gesamtwertung, also werde ich vielleicht von links verarbeiten, wenn ich zu viel nachdenke Es war einfach, wenn ich darüber nachdachte, orz.
N = int(input())
a = [int(s) - 1 for s in input().split()]
result = 0
for i in range(N):
if a[i] != (i - result):
result += 1
if result == N:
print(-1)
else:
print(result)
Ich konnte nicht durchbrechen. Ich wusste, dass es die Minimax-Methode war, aber ich hatte sie in der Vergangenheit nur einmal gefragt, und sie endete, während ich mich fragte, was passieren würde, wenn die Breite priorisiert würde.
Nachtrag: Es war nicht die Minimax-Methode (Explosion). Gemäß der PDF-Erklärung können Sie sie so implementieren, als wären Sie vor dem Ort gefangen, der am weitesten von Herrn Aoki und dem Ort entfernt ist, der Herrn Takahashi am nächsten liegt.
from sys import exit
N, u, v = map(int, input().split())
if u == v:
print(0)
exit()
edges = [[] for _ in range(N + 1)]
for _ in range(N - 1):
A, B = map(int, input().split())
edges[A].append(B)
edges[B].append(A)
def calc_destination(start, edges):
destination = [-1] * (N + 1)
destination[start] = 0
q = [start]
while len(q) != 0:
current = q.pop()
for n in edges[current]:
if destination[n] != -1:
continue
destination[n] = destination[current] + 1
q.append(n)
return destination
tak = calc_destination(u, edges)
aok = calc_destination(v, edges)
result = 0
for i in range(1, N + 1):
aoki = aok[i]
if tak[i] >= aoki:
continue
if aoki > result:
result = aoki
print(result - 1)
Recommended Posts