[PYTHON] AtCoder Beginner Contest 161 Teilnahmebericht

AtCoder Beginner Contest 161 Teilnahmebericht

ABC161A - ABC Swap

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)

ABC161B - Popular Vote

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

ABC161C - Replacing Integer

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

ABC161D - Lunlun Number

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

ABC161E - Yutori

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

AtCoder Beginner Contest 181 Teilnahmebericht
AtCoder Beginner Contest 161 Teilnahmebericht
AtCoder Beginner Contest 151 Teilnahmebericht
AtCoder Beginner Contest 176 Teilnahmebericht
AtCoder Beginner Contest 154 Teilnahmebericht
AtCoder Beginner Contest 166 Teilnahmebericht
AtCoder Beginner Contest 153 Teilnahmebericht
AtCoder Beginner Contest 145 Teilnahmebericht
AtCoder Beginner Contest 184 Teilnahmebericht
AtCoder Beginner Contest 165 Teilnahmebericht
AtCoder Beginner Contest 160 Teilnahmebericht
AtCoder Beginner Contest 169 Teilnahmebericht
AtCoder Beginner Contest 178 Teilnahmebericht
AtCoder Beginner Contest 163 Teilnahmebericht
AtCoder Beginner Contest 159 Teilnahmebericht
AtCoder Beginner Contest 164 Teilnahmebericht
AtCoder Beginner Contest 168 Teilnahmebericht
AtCoder Beginner Contest 150 Teilnahmebericht
AtCoder Beginner Contest 158 Teilnahmebericht
AtCoder Beginner Contest 180 Teilnahmebericht
AtCoder Beginner Contest 156 Teilnahmebericht
AtCoder Beginner Contest 162 Teilnahmebericht
AtCoder Beginner Contest 157 Teilnahmebericht
AtCoder Beginner Contest 167 Teilnahmebericht
AtCoder Beginner Contest 179 Teilnahmebericht
AtCoder Anfängerwettbewerb 182
AtCoder Anfängerwettbewerb 146 Teilnahmebericht
AtCoder Beginner Contest 152 Teilnahmebericht
AtCoder Beginner Contest 155 Teilnahmebericht
AtCoder Beginner Contest 174 Teilnahmebericht
AtCoder Beginner Contest 171 Teilnahmebericht
AtCoder Beginner Contest 149 Teilnahmebericht
AtCoder Anfängerwettbewerb 148 Teilnahmebericht
AtCoder Beginner Contest 170 Teilnahmebericht
AtCoder Beginner Contest 183 Teilnahmebericht
AtCoder Beginner Contest # 003 Teilnahmehinweis
AtCoder Grand Contest 041 Teilnahmebericht
AtCoder Grand Contest 040 Teilnahmebericht
AtCoder Regular Contest 105 Teilnahmebericht
AtCoder Regular Contest 104 Teilnahmebericht
Eintragsdatensatz für den ACL-Anfängerwettbewerb
Atcoder Anfängerwettbewerb 146 Teilnahme Tagebuch
Teilnahmebericht des AtCoder Chokudai Contest 005
AtCoder Grand Contest 047 Teilnahmebericht
AtCoder Anfängerwettbewerb 177
AtCoder Anfängerwettbewerb 179
AtCoder Anfängerwettbewerb 172
AtCoder Anfängerwettbewerb 180
AtCoder Anfängerwettbewerb 173
Atcoder Anfänger Wettbewerb 153
Teilnahmebericht des AtCoder HHKB Programmierwettbewerbs 2020
Teilnahmebericht des AtCoder Acing Programming Contest 2020
Teilnahmebericht des AtCoder Keyence Programming Contest 2020
Teilnahmebericht des AtCoder Panasonic Programming Contest 2020
AtCoder Anfängerwettbewerb 152 Rückblick
AtCoder Anfängerwettbewerb 181 Hinweis
AtCoder Beginner Contest 160 Bewertung
AtCoder Anfängerwettbewerb 178 Bewertung