Brechen Sie in 3 Minuten durch. Schreiben Sie einfach. Es hat lange gedauert, da der Online-Codetest blockiert war.
X, Y, Z = map(int, input().split())
X, Y = Y, X
X, Z = Z, X
print(X, Y, Z)
Durchbruch in 4 Minuten. Da der Schwellenwert 1/4 * M der Gesamtzahl der Stimmen beträgt, suchen Sie ihn zuerst und prüfen Sie, ob es M oder mehr Produkte mit mehr Stimmen als diesen Schwellenwert gibt. Der Online-Codetest ist verstopft und dauert einige Zeit Ich habe.
N, M = map(int, input().split())
A = list(map(int, input().split()))
threshold = sum(A) / (4 * M)
if len([a for a in A if a >= threshold]) >= M:
print('Yes')
else:
print('No')
Durchbrechen Sie in 6 Minuten. Wenn N K überschreitet, nehmen Sie zuerst den Überschuss. Nachdem N kleiner als K wird, konvergiert es, wenn es richtig gedreht wird, da AC nach 1000-maligem Werfen herauskam Das Ergebnis ist in Ordnung. Ich werde es später ernsthaft überdenken.
N, K = map(int, input().split())
result = N
if N > K:
result = min(result, N % K)
for i in range(1000):
result = min(result, abs(result - K))
print(result)
Nachtrag: Sei N% K x. Da x <K ist, ist der Absolutwert der Differenz zwischen x und K K - x. Übrigens ist der Absolutwert der Differenz zwischen K und K - x x. Daher sind x und Das kleinere K-x ist die Antwort.
N, K = map(int, input().split())
x = N % K
print(min(x, K - x))
Durchbruch in 49 Minuten. Natürlich ist TLE in der Schleife erforderlich, während die Anzahl um 1 erhöht wird. Überlegen Sie also, ob Sie überspringen möchten. Die Anzahl der Durchläufe beträgt 21 nach 12. 13 hat ein Problem mit 3, aber 1 anstelle von Die Run-Run-Nummer tritt erst auf, wenn die Ziffer 2 wird. Wenn ein Problem auftritt, stellen Sie die obere Ziffer um eins vor und leeren Sie die darunter liegenden Ziffern auf 0. Allein 13 → 20 → 30 Wenn daher der Wert der problematischen Ziffer kleiner als der Wert der vorherigen Ziffer ist, haben wir beschlossen, den Wert der problematischen Ziffer um eins zu erhöhen. Jetzt wird 13 → 21 vorgerückt. AC. Ich werde den Code später korrigieren, da is_lunlun ein Mist ist, der eine Zahl anstelle eines booleschen Werts zurückgibt.
K = int(input())
def is_lunlun(i):
result = -1
n = [ord(c) - 48 for c in str(i)]
for j in range(len(n) - 1):
if abs(n[j] - n[j + 1]) <= 1:
continue
if n[j] < n[j + 1]:
for k in range(j + 1, len(n)):
n[k] = 0
result = int(''.join(str(k) for k in n))
result += 10 ** (len(n) - (j + 1))
else:
result = int(''.join(str(k) for k in n))
result += 10 ** (len(n) - (j + 2))
break
return result
i = 1
while True:
# print(i)
t = is_lunlun(i)
if t == -1:
K -= 1
if K == 0:
print(i)
exit()
i += 1
else:
i = t
Ich habe bestanden, weil F in der Gesamtwertung offensichtlich leichter zu sehen ist.
ABC161F - Division or Substraction
Ich konnte nicht durchbrechen.
Nachtrag: Ich habe ungefähr 30 Minuten hinzugefügt und es gelöst. Insgesamt ungefähr 1 Stunde? N ≤ 10 </ sup> 12 </ sup>. Wenn Sie also die Schleife gehorsam drehen, ist TLE unvermeidlich. Wenn N 1 wird, ist N = K a </ sup> * (b * K + 1) (a, b ≥ 0). Im Bereich von K * K> N ist N = a * K + 1 (ohne K = N, N -1) Es gibt nur ein Muster von a ≥ 2). Die Kandidaten sind K von 2 oder mehr und sqrt (N) oder weniger und (N -1) / K, wenn N -1 durch K teilbar ist. Es ist höchstens 2 *, alle Kandidaten zu überprüfen. 10 6 </ sup> also ist es pünktlich.
N = int(input())
if N == 2:
# K = 2
print(1)
exit()
result = 2 # K = N - 1, N
for K in range(2, int(N ** 0.5 + 1)):
t = N
while t >= K and t % K == 0:
t //= K
if t % K == 1:
result += 1
if (N-1) % K == 0 and (N-1) // K > K:
result += 1
print(result)
Recommended Posts