Normalerweise nehme ich am Wettbewerb teil → Am Ende überprüfe ich ihn, aber ich wollte meine Gedanken während des Wettbewerbs aufzeichnen, deshalb habe ich beschlossen, einen Artikel zu schreiben. (Ich weiß nicht, wie lange es dauern wird)
Ich habe es ehrlich umgesetzt.
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)
Ich wusste also nicht, wie man Buchstaben in ASCII-Code konvertiert Ich fragte den Google-Lehrer und fand heraus, ob ord () und chr ().
Drücken Sie das Zielzeichen als "0 bis 25" aus, addieren Sie N, um es N-mal zu verschieben, und dividieren Sie durch 26, um den Rest zu finden. Fügen Sie abschließend "ord (" A ")" hinzu, um zum ASCII-Code des oberen Alphabets zurückzukehren. Die Antwort wurde erhalten, indem dies für jedes Zeichen getan wurde.
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))
Zuerst habe ich eine vollständige Suche nach N durchgeführt, aber es war TLE. (Korrekt) Ich dachte, dass PyPy bestehen würde (?) Und wiederholte TLE. Unterwegs wurde mir klar, dass eine Dichotomie verwendet werden kann, um den "Maximalwert zu finden, der die Bedingungen erfüllt". Ich konnte es bestehen.
Es ist bedauerlich, dass ich mich zu sehr an eine Methode gehalten habe und 30 Minuten gebraucht habe, um die zweiminütige Suche zu erreichen.
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)
Es war völlig nutzlos. Das Grafikproblem bekommt eine Ablehnungsreaktion, sobald ich es sehe, also möchte ich irgendwo hart lernen, aber ich habe es nicht berührt ...
Hast du gute Lernmaterialien? ??
Ich möchte bald grün werden!