AtCoder ABC177 Ceci est un résumé des problèmes du concours AtCoder Beginner Contest 177, qui s'est déroulé le samedi 29/08/2020, dans l'ordre du problème A, en tenant compte de la considération. La première moitié traite des problèmes jusqu'à ABC. 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 rencontre Aoki. Le lieu de rendez-vous est à $ D $ mètres de la maison de Takahashi, et l'heure de la réunion est $ T $ minutes plus tard. Takahashi quitte la maison maintenant et se rendra directement au lieu de rencontre à $ S $ mètres par minute. Serez-vous à temps pour la réunion?
abc177a.py
d, t, s = map(int, input().split())
if d <= t * s:
print("Yes")
else:
print("No")
Énoncé du problème $ 2 $ Deux chaînes $ S, T $ sont données. Réécrire certains caractères dans $ S $ pour que $ T $ soit une sous-chaîne de $ S $. Au moins combien de caractères dois-je réécrire? Cependant, une sous-chaîne est une sous-chaîne continue. Par exemple, «xxx» est une sous-chaîne de «yxxxy», mais pas une sous-chaîne de «xxyxx».
Puisque $ S et T $ sont supérieurs à 1 $ et inférieurs à 1000 $, toutes les possibilités peuvent être calculées dans le temps. Par exemple, en considérant les 7 caractères «abcdefg» et les 3 caractères «ef», combien de caractères doivent être réécrits pour chacun des caractères «abc», «bcd», «cde», «def» et «efg ». Est calculé, et le plus petit est la réponse.
abc177b.py
s = input()
t = input()
min_count = 1000
for i in range(len(s) - len(t) + 1):
count = 0
for j in range(len(t)):
if s[i+j] != t[j]:
count += 1
min_count = min(count, min_count)
if min_count == 0:
break
print(min_count)
Énoncé du problème $ N $ entiers $ A_1,…, A_N $ sont donnés. $ 1 \ leq i <j \ leq Trouvez la somme de $ A_i × A_j $ pour toutes les paires $ (i, j) $ qui satisfont N $ avec $ mod (10 ^ 9 + 7) $.
La somme à calculer est $ A_1 × (A_2 + ... + A_N) + A_2 × (A_3 + ... + A_N) + ... + A_ {N-1} × (A_N) $, donc tous sont calculés individuellement. La quantité de calcul peut être supprimée plutôt que de faire.
abc177c.py
n = int(input())
a_list = list(map(int, input().split()))
ans = 0
total = 0
mod = 10 ** 9 + 7
for i in range(n):
total += a_list[i]
if total >= mod:
total = total % mod
for i in range(n - 1):
total -= a_list[i]
if total < 0:
total += mod
ans += a_list[i] * total
if ans >= mod:
ans = ans % mod
print(ans)
C'est la fin du premier semestre. Récemment, le commentaire officiel a été décrit très soigneusement, donc j'espère que vous pourrez vous y référer pour la solution détaillée. Merci d'avoir lu jusqu'à la fin du premier semestre.
La seconde moitié expliquera le problème DE. Suite dans la seconde moitié.
Recommended Posts