La méthode gourmande est une méthode dans laquelle un certain standard est établi et la solution optimale est sélectionnée en continu sur place pour trouver la solution optimale. Je pense que c'est efficace pour trouver la solution optimale dans une certaine mesure en peu de temps. Puisque la méthode de la cupidité elle-même est utilisée dans un sens large, il est difficile de l'utiliser dans de tels cas, mais personnellement
Je pense qu'il peut être utilisé à tout moment.
AtCoder B --Magic 2 sera résolu par la méthode gourmande.
** Énoncé du problème ** M. M a les trois cartes suivantes.
-Carte rouge avec un entier A écrit dessus -Carte verte avec un entier B écrit dessus
Puisqu'il est un magicien de génie, il peut effectuer les opérations suivantes jusqu'à K fois.
--Choisissez l'une des trois cartes et doublez l'entier écrit.
Après avoir effectué l'opération, si les conditions suivantes sont remplies en même temps, la magie est réussie.
Déterminez si vous pouvez réussir dans la magie.
** Contraintes **
En bref, il est considéré que vous devriez obtenir «rouge <vert» et «vert <bleu» en K fois. Dans ce problème, la condition peut être remplie si «le nombre de fois que le vert est doublé en rouge» + «le nombre de fois que le bleu est doublé pour dépasser le vert» est inférieur ou égal à K.
Si vous dites «fixer une valeur» plus tôt, ce problème
--Fixez la valeur rouge pour comparaison
Je pense que ce sera plus facile à résoudre.
B-Magic2.py
nums = input().split() #A,B,Entrez C
A = int(nums[0])
B = int(nums[1])
C = int(nums[2])
K = input() #Entrez K
k = int(K)
cnt = 0 #Si le nombre de fois est inférieur à k, la magie réussira, définissez donc l'entier cnt pour comparaison
while A >= B: #Enregistrez le nombre de fois où B est doublé et devient A ou plus
cnt += 1
B *= 2
while B >= C: #Enregistrez le nombre de fois où C est doublé et devient B ou plus
cnt += 1
C *= 2
if cnt <= k:
print("Yes")
else:
print("No")
7 4 2 #A,B,Entrée C
3 #Entrée K
No #production
Quand cela devient un problème difficile avec AtCoder, même si je transfère les conditions du problème telles quelles, je ne peux pas atteindre la réponse, alors j'ai pensé que la capacité de lecture et la capacité de réflexion mathématique du problème étaient nécessaires. J'ai l'impression d'ignorer le japonais jusqu'au lycée. Oh, je veux des capacités de lecture ...
https://studyhacker.net/reading-comprehension
https://www.naganomathblog.com/entry/2018/08/21/071918
Recommended Posts