Je n'ai pas fait de programmation de concours récemment, donc Je voulais résoudre un problème aussi simple qu'un exercice cérébral.
J'ai déjà résolu ABC (AtCoder Beginner Contest) de AtCoder, En parlant de cela, je n'ai pas fait une collection de questions pour les débutants d'AtCoder appelée ABS (AtCoder Beginners Selection), j'ai donc profité de cette opportunité pour résoudre les 10 questions. ..
PracticeA: Welcome to AtCoder Répondez simplement en fonction de la phrase de la question! Il n'y a aucun problème si un simple traitement d'entrée / sortie peut être effectué.
a = int(input())
b,c = map(int, input().split())
s = str(input())
print(a+b+c, s)
ABC086A: Product De la même manière, répondez en fonction du texte de la question.
a,b = map(int, input().split())
sum = a*b
if sum % 2 ==0:
print("Even")
else:
print("Odd")
ABC081A: Placing Marbles De même, répondez en fonction du texte de la question.
s = str(input())
print(s.count('1'))
ABC081B: Shift only Je me suis précipité dans le problème B d'ABC. J'utiliserai un peu ma tête de cette zone. Lorsque je comprends ce qu'il faut demander dans l'énoncé du problème, Tout ce que vous avez à faire est de factoriser chaque $ A_1, \ dots, A_N $ en facteurs premiers et y trouver le plus petit nombre de 2. Je l'ai implémenté en référence à here.
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)
Le code s'allonge. Puisqu'il demande la puissance de 2, il était plus intelligent de le convertir en nombre binaire et de le traiter. Référence) https://qiita.com/watyanabe164/items/5c26fd9d8d244c5f2483
ABC087B: Coins Puisque A, B et C avaient 50 ou moins, j'ai tout simplement cherché.
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 Convertir n assigné comme type numérique en type chaîne, La chaîne de caractères extraite pour chaque chiffre a été de nouveau numérisée et traitée.
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 Attribuer une entrée à la liste et trier la liste par ordre décroissant Ajouter un nombre pair (0,2,4), soustraire un nombre impair (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 C'est facile si vous convertissez ce que vous obtenez dans la liste en un ensemble et comptez le nombre d'éléments.
n = int(input())
d = [int(input()) for _ in range(n)]
print(len(set(d)))
ABC085C: Otoshidama Tout ce que vous avez à faire est de parcourir toute la recherche.
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)
Faites attention à la fin de l'entrée S, coupez la fin s'il y a une correspondance et mettez-y S. Répétez ceci.
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 Si vous étiez aux coordonnées ($ x, $ y) au temps $ t_n, vous pouvez vérifier si vous pouvez vous déplacer vers les coordonnées ($ x ', $ y') au temps $ t_ (n + 1). Considérons le cas de 1 <= t <= n.
Si vous lisez les conditions préalables ci-dessus à partir de l'énoncé du problème, vous pouvez l'implémenter avec le code suivant.
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')
Grâce à l'implémentation de numpy dans AtCoder, sa mise en œuvre a été relativement simple.
ABS peut bien répondre sans aucune connaissance algorithmique. Ce qui précède est un exemple de réponse, donc si vous souhaitez coder plus intelligemment, veuillez vérifier les autres modèles de réponses.
Recommended Posts