[GO] [Antwortbeispiel (python3)] ABS (AtCoder Beginners Selection) des Atcoders

Einführung

Ich habe in letzter Zeit keine Wettbewerbsprogrammierung durchgeführt Ich wollte ein Problem lösen, das so einfach ist wie eine Gehirnübung.

Ich habe ABC (AtCoder Beginner Contest) von AtCoder bereits gelöst. Apropos, ich habe für AtCoder-Anfänger keine Sammlung von Fragen mit dem Namen ABS (AtCoder-Anfängerauswahl) erstellt, daher habe ich diese Gelegenheit genutzt, um alle 10 Fragen zu lösen. ..

PracticeA: Welcome to AtCoder Antworte einfach nach dem Fragensatz! Es ist kein Problem, wenn eine einfache Eingabe- / Ausgabeverarbeitung durchgeführt werden kann.

a = int(input())
b,c = map(int, input().split())
s = str(input())
 
print(a+b+c, s)

ABC086A: Product Beantworten Sie auf die gleiche Weise gemäß dem Fragentext.

a,b = map(int, input().split())
 
sum = a*b
if sum % 2 ==0:
    print("Even")
else:
    print("Odd")

ABC081A: Placing Marbles Ebenso antworten Sie gemäß dem Fragentext.

s = str(input())
 
print(s.count('1'))

ABC081B: Shift only Ich stürzte mich in das B-Problem von ABC. Ich werde meinen Kopf ein wenig aus diesem Bereich verwenden. Wenn ich verstehe, was ich von der Problemstellung verlangen soll, Alles, was Sie tun müssen, ist, jedes $ A_1, \ dots, A_N $ in Primfaktoren zu zerlegen und die kleinste Zahl von 2 unter ihnen zu finden. Ich habe es mit Bezug auf [hier] implementiert (https://note.nkmk.me/python-prime-factorization/).

import collections
 
 
def prime_factorize(n):
    a = []
    while n % 2 == 0:
        a.append(2)
        n //= 2
    f = 3
    while f * f <= n:
        if n % f == 0:
            a.append(f)
            n //= f
        else:
            f += 2
    if n != 1:
        a.append(n)
    return a
 
n = int(input())
l = list(map(int, input().split()))
 
prime_list = [ dict(collections.Counter(prime_factorize(i)).items()) for i in l ]
try:
    count_2_list = [ d[2] for d in prime_list ]
    print(min(count_2_list))
except KeyError:
    print(0)

Der Code wird länger. Da es nach der Potenz von 2 fragt, war es klüger, es in eine Binärzahl umzuwandeln und zu verarbeiten. Referenz) https://qiita.com/watyanabe164/items/5c26fd9d8d244c5f2483

ABC087B: Coins Da A, B und C 50 oder weniger waren, habe ich einfach alle durchsucht.

def equal_x_count(p,q,r,z):
    count = 0
    for i in range(p+1):
        for j in range(q+1):
            for k in range(r+1):
                if 500*i + 100*j + 50*k == z:
                   count += 1
    return count
 
 
a = int(input())
b = int(input())
c = int(input())
x = int(input())
 
print(equal_x_count(a,b,c,x))

ABC083B: Some Sums Konvertieren Sie n, das als numerischer Typ zugewiesen ist, in einen Zeichenfolgentyp. Die für jede Ziffer extrahierte Zeichenkette wurde erneut digitalisiert und verarbeitet.

n, a, b = map(int, input().split())
 
count = 0
for i in range(n+1):
    sum_each_digit = sum([ int(j) for j in str(i)])
    if a <= sum_each_digit and sum_each_digit <= b:
        count += i
 
print(count)

ABC088B: Card Game for Two Weisen Sie der Liste Eingaben zu und sortieren Sie die Liste in absteigender Reihenfolge Addiere gerade Zahl (0,2,4), subtrahiere ungerade Zahl (1,3,5)

n = int(input())
a = list(map(int, input().split()))
 
sorted_a = sorted(a, reverse=True)
alice_list = []
bob_list = []
 
for i in range(n):
    if i % 2 == 0:
        alice_list.append(sorted_a[i])
    else:
        bob_list.append(sorted_a[i])
 
d = sum(alice_list) - sum(bob_list)
 
print(d)

ABC085B: Kagami Mochi Es ist einfach, wenn Sie das, was Sie in der Liste erhalten, in eine Menge konvertieren und die Anzahl der Elemente zählen.

n = int(input())
d = [int(input()) for _ in range(n)]
 
print(len(set(d)))

ABC085C: Otoshidama Sie müssen lediglich die gesamte Suche durchsuchen.

n, y = map(int, input().split())
 
for i in range(n+1):
    for j in range(n-i+1):
        if 10000*i + 5000*j + 1000*(n-i-j) == y:
            print(i,j,n-i-j)
            exit()
print(-1,-1,-1)

ABC049C: Tagtraum

Achten Sie auf das Ende des Eingangs S, schneiden Sie das Ende ab, wenn es eine Übereinstimmung gibt, und setzen Sie S ein. Wiederholen Sie dies.

s = str(input())
 
while True:
    if s[-5:] == 'dream' or s[-5:] == 'erase':
        s = s[:-5]
    elif s[-6:] == 'eraser':
        s = s[:-6]
    elif s[-7:] == 'dreamer':
        s = s[:-7]
    elif s == '':
        print('YES')
        break
    else:
        print('NO')
        break

ABC086C: Traveling Wenn Sie zum Zeitpunkt $ t_n an den Koordinaten ($ x, $ y) waren, können Sie prüfen, ob Sie zum Zeitpunkt $ t_ (n + 1) zu den Koordinaten ($ x ', $ y') wechseln können. Betrachten wir den Fall von 1 <= t <= n.

Wenn Sie die oben genannten Voraussetzungen aus der Problemstellung lesen, können Sie sie mit dem folgenden Code implementieren.

import numpy as np
import sys
 
n = int(input())
l = [ list(map(int, input().split())) for _ in range(n)]
 
l.insert(0, [0,0,0])
 
for i in range(n):
    d = np.array(l[i+1]) - np.array(l[i])
    time, move = d[0], abs(d[1])+abs(d[2])
    if move > time or (time - move) % 2 != 0:
        print('No')
        sys.exit()
 
print('Yes')

Dank der Implementierung von numpy in AtCoder war die Implementierung relativ einfach.

Schließlich

ABS kann ohne algorithmisches Wissen gut antworten. Das Obige ist ein Beispiel für die Antwort. Wenn Sie also intelligenter codieren möchten, überprüfen Sie bitte andere Modellantworten.

Recommended Posts

[Antwortbeispiel (python3)] ABS (AtCoder Beginners Selection) des Atcoders
Antwort auf AtCoder Beginners Selection von Python3
AtCoder Anfänger Auswahl Memorandum
AtCoder Anfänger Auswahlerfahrung (2. Mal)
# 2 Python-Anfänger fordern AtCoder heraus! ABC085C --Otoshidama
Anfänger Memorandum Python "isdigit" Bewegung
Lernen Sie die Grundlagen von Python ① Grundlegende Anfänger
[Python] Protokoll des Studientreffens für Anfänger (7/15)
atCoder 173 Python
Memorandum von Python-Anfängern
Beispiel einer dreidimensionalen Skelettanalyse von Python
[Python] Löse 10 vergangene Eliteprobleme von Atcoder
Atcoder-Standardeingabesatz für Anfänger (Python)
Ein Beispiel für die Antwort auf die Referenzfrage der Studiensitzung. Mit Python.
[AtCoder] Lösen Sie ein Problem von ABC101 ~ 169 mit Python
Beispiel für die Verwendung von Python> function> * args als Argument
Die Antwort von "1/2" unterscheidet sich zwischen Python2 und 3
[Python] 90 Grad Rechtsdrehung, 90 Grad Linksdrehung, 180 Grad Drehung der Matrix [AtCoder]
Einfaches Verständnis von Python für & Arrays (für Super-Anfänger)
Beispiel für das Lesen und Schreiben von CSV mit Python
Grundlegende Geschichte der Vererbung in Python (für Anfänger)
Python-Grundlagen ①
Grundlagen von Python ①
Anfänger üben Python
Python-Anfängernotiz
AtCoder ABC 175 Python
Einführung von Python
[Sprachverarbeitung 100 Schläge 2020] Zusammenfassung der Antwortbeispiele von Python
Implementierungsbeispiel eines einfachen LISP-Verarbeitungssystems (Python-Version)
Nach 9 Monaten Atcoder-Geschichte (Python) wurde es blau.
Ruby, Python-Codefragment Ausführung der Auswahl in Emacs
Reproduzieren Sie das Ausführungsbeispiel von Kapitel 4 von Hajipata in Python
Überprüfung des Atcoders ABC158 bis Frage E (Python)
Reproduzieren Sie das Ausführungsbeispiel von Kapitel 5 von Hajipata in Python