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