[PYTHON] Ich habe an AtCoder (ABC158) teilgenommen.

Hallo! Dies ist Roadrice Field, ein Meisterschüler der Bioinformatik! Eigentlich habe ich als Hobby an AtCoder teilgenommen, aber wenn ich ab diesem Zeitpunkt Zeit habe, werde ich ein Protokoll für meine Bewertung führen! Dies ist ein Rekord, als ich am 7. März 2020 an ABC158 teilgenommen habe. Ich konnte aufgrund mangelnder Studien nur Probleme mit AC bis D lösen, aber ich werde mein Bestes geben, damit ich in Zukunft bis zu E AC kann! Normalerweise benutze ich auch C ++, aber dieses Mal schien Python genug zu sein, also habe ich alles mit Python gelöst!

Problem A

Zuerst konnte ich die Absicht der Problemstellung nicht verstehen und fragte schließlich "Was?". Wenn Sie jedoch darüber nachdenken, müssen Sie nur beurteilen, ob die angegebene Zeichenfolge * S * nur aus denselben Zeichen besteht. ist.

Meine Antwort

S = input()
if S[0] == S[1] and S[1] == S[2] and S[0] == S[2]: print("No")
else: print("Yes")

B-Problem

Am Ende setzt Takahashi nur regelmäßig * A * blaue Bälle und * B * rote Bälle, so dass es * (A + B) * Sätze von vorne auf * N * gibt. Suchen Sie zuerst den Quotienten × * A *. Wenn er größer als * A * ist, fügen Sie * A * hinzu, und wenn er kleiner als * A * ist, fügen Sie selbst zu viel hinzu. Ist die Antwort.

Meine Antwort

N, A, B = map(int, input().split())
 
div = int(N/(A+B))
 
amari = N%(A+B)
 
if amari > A:
    print(A*div + A)
else:
    print(A*div + amari)

C-Problem

Ich war ungeduldig, weil ich nicht sofort an eine Politik denken konnte, aber wenn ich ruhig denke, ist der steuerlich ausgeschlossene Mindestpreis, zu dem die Verbrauchsteuer * A * Yen bei einem Verbrauchsteuersatz von 8% beträgt, Ceil (* A * / 0,08) = Ceil. (12,5 * A ) Yen. Der steuerlich ausgeschlossene Mindestpreis, für den die Verbrauchsteuer * B * Yen bei einem Verbrauchsteuersatz von 10% beträgt, ist Ceil ( B * / 0,1) = Ceil (10 * B *) Yen. Der kleinere ist * N *. Beispielsweise wird angenommen, dass der steuerlich ausgeschlossene Mindestpreis, zu dem die Verbrauchsteuer * A * Yen bei einem Verbrauchsteuersatz von 8% beträgt, Ceil (12,5 * A *) Yen kleiner ist. * N *. = Ceil (12,5 * A *) und * N * plus 1, um den ersten Stock zu erhalten (0,1 * N *) = * B * ist die Antwort. * N * ist 1 Da der Boden (0,08 * N *) während des Addierens größer als * A * werden kann, wird -1 ausgegeben, da zu diesem Zeitpunkt keine Antwort vorliegt. Gleiches gilt, wenn die Größenbeziehung entgegengesetzt ist. Wenn Sie es in Python in int () einschließen, wird es zu einer Etage. Es ist kompliziert! !! !! Wie schreibt man die Decken- und Bodensymbole in Markdown? Kann mir bitte jemand sagen!

Meine Antwort

import math
A, B = map(int, input().split())
ans = -1
 
flg = True
 
if math.ceil(12.5*A) >= B*10:
    N = B*10
    while int(N*0.08) < A:
        N += 1
        if int(N*0.1) > B:
            flg = False
            break
    if flg: ans = N
 
else:
    N = math.ceil(12.5*A)
    while int(N*0.1) < B:
        N += 1
        if int(N*0.08) > A:
            flg = False
            break
    if flg: ans = N
 
print(ans)

D Problem

Dies liegt daran, dass es lange dauert, das Zeichen zu invertieren oder das Zeichen am Anfang hinzuzufügen, wenn Sie die Operation des Fragensatzes so wie er ist implementieren. Je nach Testfall kann die Antwort nicht innerhalb von 2 Sekunden ausgegeben werden. Beim Hinzufügen sollte die Operation zum Verschieben des Index des Arrays, das die Zeichenfolge enthält, nacheinander ausgeführt werden. Es sollte also langsam sein.) Also hier, während Sie halten, ob die Zeichenfolge jetzt invertiert ist ** Anhängen ** der Zeichen, die dem Kopf und dem Ende von * S * folgen, wenn sie in der ursprünglichen Ausrichtung angezeigt werden, um separate Listen zu erstellen (wichtig hier! Das Hinzufügen durch Anhängen wird nur am Ende der Liste hinzugefügt, also die Verarbeitung Die Zeit ist kurz.) Schließlich ging ich mit der Strategie vor, auf die Richtung zu achten und zu verbinden und auszugeben.

Meine Antwort


S = input()
Q = int(input())
 
flg = "moto"
 
atama = list()
shippo = list()
 
for _ in range(Q):
    tmp = list(map(str, input().split()))
    if flg == "moto":
        if int(tmp[0]) == 1:
            flg = "hanten"
        else:
            if int(tmp[1]) == 1:
                atama.append(tmp[2])
            else:
                shippo.append(tmp[2])
    
    else:
        if int(tmp[0]) == 1:
            flg = "moto"
        else:
            if int(tmp[1]) == 1:
                shippo.append(tmp[2])
            else:
                atama.append(tmp[2])
 
if flg == "moto":
    atama = atama[::-1]
    print("".join(atama) + S + "".join(shippo))
 
else:
    shippo = shippo[::-1]
    print("".join(shippo) + S[::-1] + "".join(atama))

Impressionen

Das ist alles, was ich gelöst habe. Von nun an möchte ich grundlegende Algorithmen wie DP und AC bis zum E-Problem lernen! Ich denke, er hat sein Bestes für das Department of Biological Sciences gegeben.

Recommended Posts

Ich habe an AtCoder (ABC158) teilgenommen.
Ich habe an AtCoder teilgenommen (ABC169 Edition)
Atcoder ABC165 A-D in Python
Atcoder ABC166 A-E in Python
Atcoder ABC169 A-E in Python
AtCoder ABC177 A-D mit Python
AtCoder ABC176
AtCoder ABC177
Ich habe an der ISUCON10-Qualifikationsrunde teilgenommen!
Löse den Atcoder ABC169 A-D mit Python
Ich habe am PyData Tokyo Meetup # 2 teilgenommen
AtCoder ABC 174 Python
Ich wollte ABC159 mit Python lösen
AtCoder ABC 175 Python
Täglicher AtCoder # 36 mit Python
Täglicher AtCoder # 32 in Python
Täglicher AtCoder # 6 in Python
Täglicher AtCoder # 18 in Python
Täglicher AtCoder # 53 in Python
Täglicher AtCoder # 7 in Python
AtCoder # 24 jeden Tag mit Python
Täglicher AtCoder # 37 in Python
AtCoder # 8 jeden Tag mit Python
Täglicher AtCoder # 42 in Python
Täglicher AtCoder # 21 mit Python
Täglicher AtCoder # 17 mit Python
Täglicher AtCoder # 38 in Python
Täglicher AtCoder # 54 in Python
Täglicher AtCoder # 11 in Python
Täglicher AtCoder # 15 in Python
Täglicher AtCoder # 13 in Python
Täglicher AtCoder # 45 mit Python
AtCoder # 30 jeden Tag in Python
Täglicher AtCoder # 40 mit Python
Täglicher AtCoder # 10 mit Python
AtCoder # 5 jeden Tag mit Python
Täglicher AtCoder # 28 in Python
Täglicher AtCoder # 39 in Python
Atcoder ABC115 Vergangene Frage Übung
Täglicher AtCoder # 20 in Python
Täglicher AtCoder # 19 in Python
Täglicher AtCoder # 52 in Python
Täglicher AtCoder # 3 in Python
Täglicher AtCoder # 14 mit Python
Täglicher AtCoder # 50 mit Python
Täglicher AtCoder # 26 mit Python
Täglicher AtCoder # 4 mit Python
Täglicher AtCoder # 43 in Python
Täglicher AtCoder # 29 in Python
Jeden Tag mit Python AtCoder # 22
Täglicher AtCoder # 49 in Python
Täglicher AtCoder # 27 in Python
AtCoder # 1 jeden Tag mit Python
Löse ABC169 mit Python
Täglicher AtCoder # 25 mit Python
Täglicher AtCoder # 16 in Python
Täglicher AtCoder # 12 in Python
Täglicher AtCoder # 48 in Python
Täglicher AtCoder # 34 in Python