Je participe généralement au concours → Je finis par le revoir, mais je voulais garder une trace de mes réflexions pendant le concours, j'ai donc décidé d'écrire un article. (Je ne sais pas combien de temps ça va durer)
Je l'ai mis en œuvre honnêtement.
A.py
S = input()
if S == "SUN":
print(7)
elif S == "MON":
print(6)
elif S == "TUE":
print(5)
elif S == "WED":
print(4)
elif S == "THU":
print(3)
elif S == "FRI":
print(2)
else:
print(1)
Je ne savais pas comment convertir des lettres en code ASCII, alors
J'ai demandé à l'enseignant de Google et j'ai découvert ʻord () ʻandchr ()
.
Exprimez le caractère cible comme «0 à 25», ajoutez N pour le décaler N fois et divisez par 26 pour trouver le reste. Enfin, ajoutez ʻord ("A") `pour revenir au code ASCII de l'alphabet supérieur. La réponse a été obtenue en faisant cela pour chaque personnage.
B.py
N = int(input())
S = input()
new_s = []
for c in S:
new_s.append(chr((ord(c) - ord("A") + N) % 26 + ord("A")))
print("".join(new_s))
Au début, j'ai fait une recherche complète de N, mais c'était TLE. (C'est vrai) J'ai pensé que PyPy passerait (?), Et j'ai répété TLE. En chemin, je me suis rendu compte qu'une dichotomie pouvait être utilisée pour trouver la "valeur maximale qui remplit les conditions". J'ai pu le passer.
Il est regrettable que je me suis trop attaché à une méthode et que j'ai pris 30 minutes pour atteindre la recherche de deux minutes.
C.py
a,b,x = map(int, input().split())
left = 0
right = 10**9 + 1
while right > left + 1:
n = (left + right) // 2
if a * n + b * len(str(n)) <= x:
left = n
else:
right = n
print(left)
C'était totalement inutile. Le problème du graphe suscite une réaction de rejet au moment où je le vois, donc je veux étudier dur quelque part, mais je ne l'ai pas touché ...
Avez-vous du bon matériel d'apprentissage? ??
Je veux passer au vert bientôt!