[PYTHON] ABC174

Wir haben am AtCorder Beginner Contest 174 teilgenommen. Es waren ABDs 3 Fragen AC. Ich benutze Python3.

Ein Problem

Bedingte Verzweigung mit if.

import sys
def input():
    return sys.stdin.readline()[:-1]


def main():
    s=int(input())
    if s >= 30:
        print("Yes")
    else:
        print("No") 

    
if __name__ == "__main__":
    main()

B Problem

Tragen Sie den Quadratwert des i-ten Punktes und den Abstand von der Mitte in die Liste L [i] ein. Ob dies größer als das Quadrat von D ist, wird durch if bestimmt.

import sys
def input():
    return sys.stdin.readline()[:-1]


def main():
    N, D = map(int,input().split())
    X = [0] * N
    Y = [0] * N
    L = [0] * N
    ans = 0
    for i in range(N):
        X[i], Y[i] = map(int, input().split())
        L[i] = X[i] ** 2 + Y[i] ** 2
        if L[i] <= D ** 2:
            ans += 1
    print(ans)


    
if __name__ == "__main__":
    main()

C Problem

Suchen Sie die Zahl $ 0 $, indem Sie die Zahlenspalte $ 7, 77, 777, ... $ durch $ K $ teilen. Da die Zahlenfolge auf $ 70, 700, 7000 ... $ ansteigt, gilt sie nur, wenn $ K $ und $ 10 $ zueinander Primzahlen sind. (Da diese Sequenz ein Vielfaches von $ 7 $ ist, ist es $ 10 $ anstelle von $ 70 $)
Erstens, wenn K ein Vielfaches von $ 2 $ oder ein Vielfaches von $ 5 $ ist, erscheint das Vielfache von K nicht in der Sequenz, daher werden wir die Fälle klassifizieren. Erstellen Sie als Nächstes eine Folge von Zahlen wie $ 7, 77, 777, ... $ und wiederholen Sie diese mit einer while-Anweisung, bis der Rest nach dem Teilen durch K $ 0 $ wird. $ x = (x + 7 * 10 ** i)% K $ anstelle von $ x = (x * 10 + 7)% K $ Dann hat es lange gedauert, $ 7 $ * $ 10 $ ** $ i $ zu berechnen, also wurde es TLE. (Bearbeitet am 04.08.2020) Nachfolgend finden Sie die Antworten, die nach Ablauf der Zeit zu AC wurden.

import sys
def input():
    return sys.stdin.readline()[:-1]


def main():
    K = int(input())
    x = 0
    i = 0
    if K % 2 == 0 or K % 5 ==  0:
        print(-1)
        exit()
    
    while True:
        x = (x * 10 + 7) % K
        i += 1
        if x == 0:
            print(i)
            break


if __name__ == "__main__":
    main()

D Problem

Ordnen Sie die N Steine von links nach rechts so an, dass sie links R und rechts W sind. Wenn Sie die Problemstellung lesen, werden Sie feststellen, wie zwei Steine ausgetauscht werden und wie die Farbe eines Steins geändert wird. In Anbetracht der Anordnung mit der minimalen Anzahl von Operationen ist jedoch ersichtlich, dass nur die Operation des Austauschs der beiden Steine erforderlich ist.
Lesen Sie zuerst die Reihenfolge der Steine als Zeichenkette und ermitteln Sie die Anzahl w der weißen Steine. Die 0. bis W. von links sollten weiße Steine sein, also finden Sie die Anzahl der roten Steine in diesem Bereich. Dies ist die Nummer und die Antwort.

import sys
def input():
    return sys.stdin.readline()[:-1]


def main():
    N = int(input())
    c = list(input())
    w = c.count("R")
    hidari = c[:w]
    ans = 0
    for i in hidari:
        if i == "W":
            ans += 1
    print(ans)

    
if __name__ == "__main__":
    main()

Recommended Posts

ABC168
ABC164
ABC174
ABC175
ABC170
ABC182
ABC153
ABC146 Impressionen
AtCoder ABC176
ABC167 WriteUp
AtCoder ABC177
Anfänger ABC156 (Python)
abc154 teilnahmebericht
abc155 teilnahmebericht
AtCoder ABC 174 Python
Anfänger ABC155 (Python)
Anfänger ABC157 (Python)
AtCoder ABC 175 Python
Atcoder ABC115 Vergangene Frage Übung
Löse ABC169 mit Python
ABC147 C --HonestOrUnkind2 [Python]