Je vais vous expliquer comment résoudre les ** problèmes A, B, C ** du ** AtCoder Beginners Contest 164 ** avec ** Python 3 ** aussi soigneusement que possible.
Je vise à expliquer une solution qui satisfait les trois points suivants, pas seulement une méthode qui peut être résolue.
ABC164
Date: 26/04/2020 (dim.) 21:00 ~ 26/04/2020 (dim.) 22:40 (100 minutes) A Nombre de personnes ayant posé des questions: 11236
Performance | AC | temps | Classement | Ligne directrice |
---|---|---|---|---|
400 | ABC- | 29 minutes | 7198e | Thé performance |
600 | ABC- | 18 minutes | 5854e | Taux brun à 8 fois |
800 | ABC- | 12 minutes | 4425e | Performance verte |
1200 | ABC- | 5 minutes | 2081e | Performance de l'eau |
(Référence) Moi: Performance 1625 ABCD-- 23:03 80 5ème place </ font>
Le problème D était assez difficile, donc le simple fait de résoudre le problème C m'a donné rapidement une performance de l'eau. Je pense que vous avez ressenti l'importance de le faire de manière simple et rapide.
ABC158A 『Sheep and Wolves』
** Page de problème **: A --Moutons et loups ** Difficulté **: ☆☆☆☆☆ ** Point **: Gestion des instructions if, gestion des valeurs limites
C'est une simple question de faire exactement comme vous l'écrivez.
<détails> Lorsque vous jugez avec «si», soyez prudent lorsque vous manipulez la valeur limite (le nombre à la limite où le jugement change). ** "Plus de" **, donc Veuillez noter que l'échantillon 3 est `` dangereux '' avec $ W = S $, donc si cela réussit, vous pouvez soumettre en toute confiance. Simplement fais-le. Veillez à ne pas inverser les termes «dangereux» et «sûr», ni faire des fautes de frappe ou d'orthographe. Une erreur peut entraîner une pénalité de 5 minutes, donc même si cela prend un certain temps, assurez-vous de vérifier qu'elle correspond à tous les échantillons avant de soumettre. Si vous voulez écrire sur une seule ligne, vous pouvez utiliser "opérateur ternaire". Je ne l'utilise pas car cela semble provoquer des erreurs. ABC164B『Battle』 ** Page de problème **: B --Bataille
** Difficulté **: ★ ☆☆☆☆
** Point **: Manipulation de while, élaboration de noms de variables C'est un jeu simple dans lequel vous pouvez réduire les HP de l'adversaire du même montant que votre propre puissance d'attaque lorsque vous attaquez. Takahashi est le premier joueur et Aoki est le deuxième joueur. <détails> Puisque $ A, B, C, D $ sont tous de 100 ou moins, vous pouvez le résoudre en le simulant tel quel. S'il s'agit d'un nombre très énorme tel que 5000 billions (mots morts), il sera calculé par arithmétique. (Cela n'a pas vraiment d'importance, mais il y a en fait un problème avec 5000 billions de dollars dans l'énoncé du problème) Si le nom de la variable est changé en «a», «b», «c», «d» tel quel, il sera difficile de comprendre quelle variable est quoi, et ce sera une source de confusion. J'étais confus pendant le concours et j'ai fini par lire le texte de la question environ 5 fois. Disons Écrivez ceci aussi. Pour une telle simulation, utilisez Au fait, si vous laissez le nom de la variable comme énoncé du problème, ce sera le code ci-dessous. C'est un code qui semble induire des erreurs. Vous pouvez voir l'importance des noms de variables! (Autodiscipline) ABC164C『gacha』 ** Page de problème **: C --gacha
** Difficulté **: ★★ ☆☆☆
** Type **: Utilisation du type d'ensemble Vous pouvez facilement comprendre la signification de l'énoncé du problème. Le plaisir dépend de la façon dont vous le mettez en œuvre. <détails> Il existe différentes manières de trouver le nombre de types, mais le type d'ensemble est le plus simple. Si vous recevez normalement l'entrée sous forme de type de liste et que vous en faites un type d'ensemble, les éléments en double (double) disparaîtront. Puisque le nombre d'éléments de type set est le nombre de types lui-même, vous pouvez trouver la réponse en utilisant la fonction Je ne pense pas que vous puissiez le comprendre même s'il est dit avec des mots. Il n'y a rien de difficile si vous regardez ce qui va se passer. Seulement 3 lignes hors entrée. Si vous utilisez La technique de conversion en type d'ensemble et de recherche du nombre de types avec Pas pertinent pour ce problème, mais vous voulez souvent savoir combien de fois chaque élément est apparu. Dans un tel cas, il est plus facile d'écrire Je ne vais pas expliquer comment l'utiliser cette fois, donc si vous voulez le savoir, veuillez le vérifier. Pour expliquer brièvement à quoi il ressemble, c'est un compteur pratique avec diverses fonctions ajoutées au type dict.
Recommended Posts
Comment résoudre
Étape 1: Lisez l'énoncé du problème
Non sûr '' lorsque le nombre de loups est ** "supérieur ou égal à" **, sinon
sûr ''.w> = s
. Si le nombre de loups est ** "plus" que le nombre de moutons **, alors w> s
.code
s, w = list(map(int, input().split()))
if w >= s:
print("unsafe")
else:
print("safe")
s, w = list(map(int, input().split()))
print("unsafe") if w >= s else print("safe")
Énoncé du problème
Comment résoudre
Étape 1: Réfléchissez à ce qu'il faut faire
tkhp
, tkat
, ʻaohp, ʻaoat
.code
while True
pour faire une boucle infinie, et si les conditions sont remplies, utilisez break
pour quitter.tkhp, tkat, aohp, aoat = list(map(int, input().split()))
while True:
aohp -= tkat
if aohp <= 0:
print("Yes")
break
tkhp -= aoat
if tkhp <= 0:
print("No")
break
while True:
c -= b
if c <= 0:
print("Yes")
break
a -= d
if a <= 0:
print("No")
break
Énoncé du problème
Choses à faire
Étape 1: Réfléchissez à la façon de demander
len ()
.>>> s = ['apple', 'orange', 'apple']
>>> s_set = set(s)
>>> s_set
{'orange', 'apple'} #Il y en a deux'apple'Est devenu un
>>> len(s_set)
2 # 'orange'Quand'apple'Il existe deux types.
>>> s = ['grape', 'grape', 'grape', 'grape', 'grape']
>>> s_set = set(s)
>>> s_set
{'grape'} #Il y en a 5'grape'Est devenu un
>>> len(s_set)
1 # 'grape'C'est un type de.
code
n = int(input())
s = [input() for _ in range(n)] #Je reçois des entrées dans une notation incluse dans la liste qui semble soignée. La même chose est vraie avec la boucle for.
ss = set(s) #Créez un type d'ensemble de s. C'est un mauvais nom de variable, mais c'est un code court donc je pense que ça va.
ans = len(ss) #Vous pouvez maintenant voir le nombre de types.
print(ans)
print (len (set (s)))
, ce sera une ligne, mais si vous n'y êtes pas habitué, essayez de ne faire qu'une ligne par ligne.len
est très souvent utilisée, alors n'oubliez pas de la retenir.Bonus (à propos du compteur)
from collections import Counter
et d'utiliser le type Counter. Je l'utilise aussi souvent que le type de set.