[PYTHON] AtCoderBeginnerContest169 Review & Summary (premier semestre)

AtCoder ABC169 Ceci est un résumé des problèmes de AtCoder Beginner Contest 169 qui s'est tenu le 2020-05-31 (dim), en partant 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

Problème A Multiplication 1

Énoncé du problème Trouvez $ A × B $.

Il a fallu l'entrée et la sortie du produit.

abc169a.py


a, b = map(int, input().split())
print(a * b)

Problème B Multiplication 2

Énoncé du problème $ N $ entiers $ A_1, ..., A_N $ sont donnés. Trouvez $ A_1 × ... × A_N $. Cependant, si le résultat dépasse 10 $ ^ {18} $, affichez "-1" à la place.

J'ai participé à Python, mais j'ai eu du mal. Ce serait mauvais s'il y avait un 0 à la fin de l'entrée, alors j'ai écrit un programme qui multiplie sans cesse toutes les valeurs et il est devenu "TLE". Si je pouvais vérifier s'il y avait un 0 au début, je n'aurais pas dû avoir de mal avec Python, mais j'ai passé plus de temps que prévu, et la pénalité s'est chevauchée (remords). J'étais optimiste sur le fait que ce serait bien car il n'y a pas de limite supérieure pour le type int de Python, mais je ne savais pas que le coût de calcul augmenterait régulièrement.

abc169b.py


n = int(input())
a_list = list(map(int, input().split()))
if 0 in a_list:
    print(0)
else:
    ans = 1
    flag = 1
    for i in range(0, n):
        ans *= int(a_list[i])
        if ans > 10 ** 18:
            flag = 0
            break
    if flag == 0:
        print(-1)
    else:
        print(ans)

Au fait, j'ai émis pena 4 fois.

Problème C Multiplication 3

Énoncé du problème Tronquez $ A × B $ et affichez le résultat sous forme d'entier. Contraintes ・ $ 0 \ leq A \ leq 10 ^ {15} $ ・ $ 0 \ leq B <10 $ ・ $ A $ est un entier ・ $ B $ est donné jusqu'à la fraction de 2 $

Je savais qu'il y aurait une erreur dans le calcul des fractions, alors j'ai pensé que si je le multiplie par 100 pour en faire un entier, je pourrais le calculer sans problème, alors j'ai soumis une méthode pour multiplier l'entrée $ B $ par 100. Cependant, je suis devenu "WA" et j'étais désespéré. Le code qui a renvoyé le premier "WA" soumis.

abc169c.py


a, b = input().split()
a = int(a)
b = int(float(b) * 100)
print(a * b // 100)

Je ne savais pas quelle en était la cause, et j'ai essayé diverses choses, mais cela n'a pas abouti, et à la fin, au lieu de convertir l'entrée $ B $ en float, j'ai converti la chaîne de caractères directement sous forme d'entier à trois chiffres en chaîne numérique. J'ai pu passer "AC". J'ai appris qu'une erreur se produit même lorsqu'une fraction est multipliée par 100 pour en faire un entier (je pourrais résoudre l'exemple sans aucun problème, donc je ne pouvais pas du tout comprendre la cause).

abc169c.py


a, b = input().split()
a = int(a)
b = int(''.join(b.split(".")))
x = a * b
print(x // 100)

Le problème C était également de 4 pena avant de publier "AC".

C'est la fin du premier semestre. Personnellement, je me sens comme un assortiment de pièces dans lesquelles je ne suis pas bon, et je suis pressé de me retrouver avec uniquement le problème A et de perdre du taux, ce qui est probablement la raison pour laquelle il a fallu beaucoup de temps pour le résoudre. J'étais vraiment désespéré pendant le concours parce que je ne connaissais pas la raison (parce que la méthode d'affichage des résultats des juges a changé sans préavis et je ne savais même pas combien de problèmes je pourrais passer). Merci d'avoir lu jusqu'à la fin du premier semestre.

La seconde moitié expliquera le problème DEF. Suite au deuxième semestre.

Recommended Posts

AtCoderBeginnerContest175 Review & Summary (premier semestre)
AtCoderBeginnerContest164 Review & Summary (premier semestre)
AtCoderBeginnerContest169 Review & Summary (premier semestre)
AtCoderBeginnerContest174 Review & Summary (premier semestre)
AtCoderBeginnerContest173 Review & Summary (First Half)
AtCoderBeginnerContest165 Review & Summary (premier semestre)
AtCoderBeginnerContest170 Review & Summary (premier semestre)
AtCoderBeginnerContest167 Review & Summary (premier semestre)
AtCoderBeginnerContest177 Review & Résumé (premier semestre)
AtCoderBeginnerContest168 Review & Summary (premier semestre)
AtCoderBeginnerContest178 Review & Summary (premier semestre)
AtCoderBeginnerContest171 Review & Summary (premier semestre)
AtCoderBeginnerContest166 Review & Summary (premier semestre)
AtCoderBeginnerContest161 Review & Summary (premier semestre)
AtCoderBeginnerContest172 Review & Summary (premier semestre)
AtCoderBeginnerContest176 Review & Summary (premier semestre)
AtCoderBeginnerContest178 Review & Summary (second semestre)
AtCoderBeginnerContest161 Review & Summary (second semestre)
AtCoderBeginnerContest164 Review & Summary (second semestre)
AtCoderBeginnerContest176 Review & Summary (second semestre)
AtCoderBeginnerContest168 Review & Summary (second semestre)
AtCoderBeginnerContest169 Review & Summary (second semestre)
AtCoderBeginnerContest166 Review & Summary (second semestre)
AtCoderBeginnerContest171 Review & Summary (second semestre)
AtCoderBeginnerContest174 Review & Summary (second semestre)
AtCoderBeginnerContest173 Review & Summary (second semestre)
AtCoderBeginnerContest177 Review & Summary (second semestre)
AtCoderBeginnerContest180 Examen et résumé
AtCoderBeginnerContest182 Examen et résumé
AtCoderBeginnerContest183 Review & Résumé
AtCoderBeginnerContest179 Review & Résumé
Résumé du didacticiel Django Girls Première moitié
AtCoder Revue des questions précédentes (première moitié de 12 / 8,9)