[PYTHON] Un codeur brun a tenté de résoudre le concours Panasonic 2020A ~ C

introduction

Concours de programmation Panasonic 2020 3 Terminé (Python3 95:30 8WA) Je publierai la solution de A ~ C.

Cliquez ici pour le lien vers le concours de programmation Panasonic 2020 https://atcoder.jp/contests/panasonic2020

table des matières

A-Kth Term

Énoncé du problème

Sortez le K-ième terme de la séquence suivante de longueur 32.

1, 1, 1, 2, 1, 2, 1, 5, 2, 2, 1, 5, 1, 2, 1, 14, 1, 5, 1, 5, 2, 2, 1, 15, 2, 2, 5, 4, 1, 4, 1, 51

https://atcoder.jp/contests/panasonic2020/tasks/panasonic2020_a

Je pense que vous devriez mettre cette chaîne de chiffres dans la liste et sortir l'entrée Kth.

Code de soumission

main.py


k = int(input())
x = [1, 1, 1, 2, 1, 2, 1, 5, 2, 2, 1, 5, 1, 2, 1, 14, 1, 5, 1, 5, 2, 2, 1, 15, 2, 2, 5, 4, 1, 4, 1, 51]
print(x[k-1])

B-Bishop

Énoncé du problème

Il existe des panneaux de masse H verticale et de masse W horizontale. Une pièce carrée est placée dans le carré dans le coin supérieur gauche de ce plateau. Combien de cases peut-on atteindre en répétant le mouvement de 0 pièces ou plus autant de fois que vous le souhaitez? Par exemple, lorsque le cadre est dans la figure, l'endroit où vous pouvez vous déplacer en même temps est le carré rouge. https://atcoder.jp/contests/panasonic2020/tasks/panasonic2020_b

Je ne comprends pas du tout même si je jette un coup d'œil à l'énoncé du problème. Ainsi, si vous regardez les chiffres de l'exemple d'entrée 1 et de l'exemple d'entrée 2, vous remarquerez que les cellules colorées sont les nombres obtenus en arrondissant le nombre de cellules hw / 2.

Cependant, lorsque h = 1 ou w = 1 comme indiqué dans la figure ci-dessous, le nombre de cellules colorées est 1.

Code de soumission

main.py


import math
h,w = map(int, input().split(' '))
if h == 1 or w == 1:
    print(1)
else:
    res = math.ceil(h*w / 2)
    print(res)

C-Sqrt Inequality

Énoncé du problème

$ \ Sqrt {a} + \ sqrt {b} <\ sqrt {c} $? https://atcoder.jp/contests/panasonic2020/tasks/panasonic2020_c

Écrivons le code tel qu'il est avec l'énoncé du problème.

main.py


import math

a,b,c = map(int, input().split(' '))
if math.sqrt(a) + math.sqrt(b) < math.sqrt(c):
    print('Yes')
else:
    print('No')

Si tel est le cas, WA apparaîtra. Donc À partir de $ \ sqrt {a} + \ sqrt {b}> 0 $ et $ \ sqrt {c}> 0 $ \sqrt{a}+\sqrt{b}<\sqrt{c} \Rightarrow a+2\sqrt{ab}+b \Rightarrow 4ab < (c-a-b)^2 Pour l'empêcher de devenir une fraction infinie. Cela évitera la perte de chiffres. Voici le code qui a confirmé la différence. Certainement WA sortira.

Addendum: le code ci-dessous était incorrect et a été corrigé. (2020/3/16)

check.py


from math import sqrt as sq
a = 250000000
b = 250000000
c = 10**9
while sq(a) + sq(b) >= sq(c):
    a += 1
    b -= 1
    print(a,b)
    print(4*a*b, (c-a-b)**2)
    print(sq(a)+sq(b)<sq(c))
    print(4*a*b < (c-a-b)**2)
250000001 249999999
249999999999999996 250000000000000000
False
True
250000002 249999998
249999999999999984 250000000000000000
False
True
250000003 249999997
249999999999999964 250000000000000000
False
True
250000004 249999996
249999999999999936 250000000000000000
False
True
250000005 249999995
249999999999999900 250000000000000000
False
True
250000006 249999994
249999999999999856 250000000000000000
False
True
250000007 249999993
249999999999999804 250000000000000000
True
True

Code de soumission

main.py


import math

a,b,c = map(int, input().split(' '))
x = 4 * a * b
y = c - a -b
if y <= 0:
    print('No')
elif  x < y**2:
    print('Yes')
else:
    print('No')

Il peut également être c-a-b <0.

Recommended Posts

Un codeur brun a tenté de résoudre le concours Panasonic 2020A ~ C
[Pratique compétitive] J'ai essayé le concours AtCoder Beginner Contest 175 (A ~ C)
Je voulais résoudre le concours de programmation Panasonic 2020 avec Python
J'ai essayé de résoudre le problème d'optimisation des combinaisons avec Qiskit
Résoudre ABC163 A ~ C avec Python
Pour ajouter un module C à MicroPython ...
Résoudre ABC168 A ~ C avec Python
[Python] Maintenant un codeur marron ~ [AtCoder]
Résoudre ABC036 A ~ C avec Python
Résoudre ABC162 A ~ C avec Python
Résoudre ABC167 A ~ C avec Python
Résoudre ABC158 A ~ C avec Python
Résoudre ABC037 A ~ C avec Python
J'ai essayé de créer un linebot (implémentation)
Résoudre ABC175 A, B, C avec Python
J'ai essayé de créer un linebot (préparation)
AtCoder d'aujourd'hui ~ La route vers le codeur brun ~
J'ai essayé de laisser optuna résoudre le nombre
J'ai créé une API Web
J'ai essayé de résoudre TSP avec QAOA
J'ai essayé de créer une méthode de super résolution / ESPCN
J'ai essayé de créer une méthode de super résolution / SRCNN ①
Je voulais résoudre NOMURA Contest 2020 avec Python
Résolvez A ~ D du codeur yuki 247 avec python
J'ai essayé de générer une chaîne de caractères aléatoire
J'ai essayé d'ajouter un module Python 3 en C
J'ai essayé de créer une méthode de super résolution / SRCNN ③
J'ai essayé de créer une méthode de super résolution / SRCNN ②
J'ai créé un jeu ○ ✕ avec TensorFlow
[Keras] J'ai essayé de résoudre le problème de classification des zones de type beignet par apprentissage automatique [Étude]
AtCoder Beginner Contest 177 Problème C J'ai essayé de découvrir pourquoi c'était faux