[PYTHON] AtCoder Beginner Contest 158 Teilnahmebericht

AtCoder Beginner Contest 158 Teilnahmebericht

ABC158A - Station and Bus

Brechen Sie in 2 Minuten durch. Schreiben Sie einfach. 1 Typ, 2 Typen, das war's.

S = input()

if len(set(S)) == 1:
    print('No')
else:
    print('Yes')

ABC158B - Count Balls

Brechen Sie in dreieinhalb Minuten durch. Berechnen Sie, wie viele Operationen N enthält. Wenn n-mal, gibt es n * A blaue Kugeln. Auf halber Strecke, wenn es innerhalb von A liegt, ist die Zahl Ansonsten gibt es A blaue Kugeln.

N, A, B = map(int, input().split())

result = 0
result += N // (A + B) * A
result += min(N % (A + B), A)
print(result)

ABC158C - Tax Increase

Brechen Sie in viereinhalb Minuten durch. A ≤ B ≤ 100 bedeutet, dass 1000 höchstens die Antwort ist. Es ist also in Ordnung, ein Round-Robin zu machen! Sie könnten klüger sein, aber ich habe WA gegessen und es ungefähr zweimal diszipliniert. Es war sicherer als Clever.

A, B = map(int, input().split())

for i in range(2000):
    if int(i * 0.08) == A and int(i * 0.1) == B:
        print(i)
        exit()
print(-1)

Nachtrag: In der PDF-Erklärung gab es ein Problem, das von * O * (1) gelöst werden musste.

A, B = map(int, input().split())

x_low = (A * 100 + 7) // 8
x_high = ((A + 1) * 100 + 7) // 8 - 1
y_low = (B * 100 + 9) // 10
y_high = ((B + 1) * 100 + 9) // 10 - 1

result = max(x_low, y_low)
if result > min(x_high, y_high):
    result = -1
print(result)

ABC158D - String Formation

Durchbruch in 17 Minuten. Wenn Sie die Zeichenfolge wie angegeben bedienen, ist TLE natürlich gerade. Sie können die Verwendung von deque sehen, weil Sie von rechts und links hinzufügen. Danach wird es TLE, wenn Sie jedes Mal invertieren. Wenn nötig, machen Sie es am Ende einfach einmal.

from collections import deque

S = input()
Q = int(input())

t = deque(S)
reverse = False
for _ in range(Q):
    query = input()
    if query[0] == '1':
        reverse = not reverse
    elif query[0] == '2':
        _, F, C = query.split()
        if F == '1':
            if reverse:
                t.append(C)
            else:
                t.appendleft(C)
        elif F == '2':
            if reverse:
                t.appendleft(C)
            else:
                t.append(C)
result = ''.join(t)
if reverse:
    result = result[::-1]
print(result)

ABC158E - Divisible Substring

Verloren. Ich konnte mir keine Möglichkeit vorstellen, es aus * O * (* N * 2 </ sup>) zu entfernen. Mir wurde klar, dass ich es mit DP lösen könnte, wenn ich eine Ziffer nach der anderen fortfahre, aber es war zu spät.

Nachtrag: Es ist einfach, wenn P 2 und 5 ist, und es kann geteilt werden, wenn die letzte Ziffer ein Vielfaches von 2 oder ein Vielfaches von 5 ist, sodass der Rest berechnet werden kann, indem die Zahlen akkumuliert werden, die nach links erweitert werden können. Für andere Ps Zum Beispiel S 6 S 5 S 4 4 S 3 2 S 2 > 1 </ sub> S 0 </ sub> S 6 </ sub> S 5 </ sub> S 4 </ sub> S 3 </ strong> Wenn sub> durch P teilbar ist, dann S 6 </ sub> S 5 </ sub> S 4 </ sub> S 3 </ sub> S 2 </ sub> S 1 </ sub> S 0 </ sub> ≡ S 2 </ sub> S 1 </ sub> S 0 </ sub> Da es sich um (mod P) handelt, kann es erhalten werden, indem es nach links erweitert wird, während der Rest aufgezeichnet und die Nummer desselben Restes addiert wird.

N, P = map(int, input().split())
S = input()

S = S[::-1]
result = 0
if P == 2 or P == 5:
    for i in range(N):
        if int(S[i]) % P == 0:
            result += N - i
else:
    t = [0] * P
    m = 1
    n = 0
    for i in range(len(S)):
        t[n] += 1
        n += int(S[i]) * m
        n %= P
        result += t[n]
        m *= 10
        m %= P
print(result)

Recommended Posts

AtCoder Beginner Contest 181 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 164 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
AtCoder Anfängerwettbewerb 180 Hinweis
AtCoder Anfängerwettbewerb 167 Bewertung
Teilnahmebericht zum AtCoder Library Practice Contest (Python)
AtCoder Anfängerwettbewerb 182 Hinweis