AtCoder ABC181 Ceci est un résumé des problèmes de AtCoderBeginnerContest181 qui s'est tenu le 2020-11-01 (Dimanche) dans l'ordre du problème A, en tenant compte de la considération. Le problème est cité, mais veuillez consulter la page du concours pour plus de détails. Cliquez ici pour la page du concours Commentaire officiel PDF
Énoncé du problème Takahashi porte désormais des vêtements blancs. Takahashi porte des vêtements noirs le lendemain après avoir porté des vêtements blancs et des vêtements blancs le lendemain après avoir porté des vêtements noirs. Quelle couleur porterez-vous en $ N $ jours?
abc181a.py
n = int(input())
if n % 2 == 0:
print("White")
else:
print("Black")
Énoncé du problème Il y a un tableau noir vierge. Takahashi opère $ N $ fois et écrit un entier sur le tableau noir. Dans l'opération _ $ i $, écrivez $ 1 $ chacun de tous les entiers de $ A_i $ à $ B_i $, pour un total de $ B_i − A_i + 1 $ entiers. Trouvez la somme des entiers écrits sur le tableau noir après avoir terminé les opérations $ N $.
Il était très utile d'avoir $ B_i − A_i + 1 $ dans l'énoncé du problème. J'oublie souvent d'ajouter +1 ici et je fais des erreurs (sueur)
abc181b.py
n = int(input())
total = 0
for i in range(n):
a, b = map(int, input().split())
total += (b - a + 1) * (a + b) // 2
print(total)
Énoncé du problème Il y a $ N $ points sur un plan de dimension $ 2 $ infiniment large. Le $ i $ ème point est à $ (x_i, y_i) $. Y a-t-il des points de 3 $ différents sur des points $ N $ qui sont sur la même ligne droite?
Être sur une ligne droite signifie que pour trois points $ P_1, P_2, P_3 $
abc181c.py
n = int(input())
x_list = []
y_list = []
for i in range(n):
x, y = map(int, input().split())
x_list.append(x)
y_list.append(y)
flag = 0
for i in range(n - 2):
for j in range(i + 1, n - 1):
for k in range(j + 1, n):
xi = x_list[i]
xj = x_list[j]
xk = x_list[k]
yi = y_list[i]
yj = y_list[j]
yk = y_list[k]
if (xj - xi) * (yk - yi) == (xk - xi) * (yj - yi):
flag = 1
if flag == 1:
print("Yes")
else:
print("No")
Énoncé du problème Étant donné une chaîne de nombres $ S $ constituée uniquement de nombres de 1 à 9. Bee Takahashi aime les multiples de 8 $. Takahashi essaie de réorganiser la chaîne numérique $ S $ pour faire un multiple de 8 $ $. Déterminez si vous pouvez faire un multiple de 8 $ $.
Pour qu'une certaine chaîne numérique soit un multiple de 8 $ $, les trois derniers chiffres doivent être un multiple de 8 $ $. Par conséquent, il peut être résolu en vérifiant s'il est possible de créer trois chiffres, qui est un multiple de 8 $ $, pour une chaîne numérique de trois chiffres ou plus. Premièrement, nous avons enregistré une combinaison de nombres multiples de 8 $, sans compter 0 $, et confirmé que le nombre requis pour cette combinaison était suffisant, et rendu un jugement. Je pense que je peux écrire un code plus simple, mais je posterai celui soumis tel quel.
abc181d.py
s = input()
flag = 0
if len(s) == 1:
if int(s) % 8 == 0:
flag = 1
elif len(s) < 3:
if int(s) % 8 == 0:
flag = 1
if int(s[1] + s[0]) % 8 == 0:
flag = 1
else:
check_list = []
for i in range(14, 125):
mozi = str(i * 8)
if len(mozi) == 3 and "0" not in mozi:
count_list = [0] * 9
count_list[int(mozi[0]) - 1] += 1
count_list[int(mozi[1]) - 1] += 1
count_list[int(mozi[2]) - 1] += 1
check_list.append(count_list)
s_list = [0] * 9
for suuzi in s:
s_list[int(suuzi) - 1] += 1
for count_list in check_list:
total = 0
for i in range(9):
if count_list[i] > 0:
if count_list[i] <= s_list[i]:
total += count_list[i]
if total == 3:
flag = 1
break
if flag == 1:
print("Yes")
else:
print("No")
Cette fois, j'ai pu résoudre le problème D à un bon rythme, mais je n'ai pas pu résoudre le problème E car il était bloqué par "WA". Comme la politique était en place, je voudrais m'assurer qu'elle pourra être résolue la prochaine fois.
Merci d'avoir lu jusqu'au bout.
Recommended Posts