Ich werde erklären, wie man ** A, B, C Probleme ** des ** AtCoder Beginners Contest 164 ** mit ** Python 3 ** so sorgfältig wie möglich löst.
Ich möchte eine Lösung erklären, die die folgenden drei Punkte erfüllt, nicht nur eine Methode, die gelöst werden kann.
ABC164
Datum: 26.04.2020 (So) 21:00 ~ 26.04.2020 (So) 22:40 (100 Minuten) Eine Anzahl von Personen, die Fragen stellen: 11236
Performance | AC | Zeit | Rangfolge | Richtlinie |
---|---|---|---|---|
400 | ABC- | 29 Minuten | 7198 | Teeleistung |
600 | ABC- | 18 Minuten | 5854 | Brown Rate bei 8 mal |
800 | ABC- | 12 Minuten | 4425 | Grüne Leistung |
1200 | ABC- | 5 Minuten | 2081st | Wasserleistung |
(Referenz) Me: Performance 1625 ABCD-- 23:03 80 5. Platz </ font>
Das D-Problem war ziemlich schwierig, so dass ich durch einfaches Lösen des C-Problems schnell eine Wasserleistung erbrachte. Ich denke, Sie haben das Gefühl, dass es wichtig ist, dies schnell und einfach zu tun.
ABC158A 『Sheep and Wolves』
** Problemseite **: A - Schafe und Wölfe ** Schwierigkeit **: ☆☆☆☆☆ ** Punkt **: Behandlung von if-Anweisungen, Behandlung von Grenzwerten
Es ist ganz einfach, genau das zu tun, was Sie schreiben.
"Unsicher", wenn die Anzahl der Wölfe ** "größer oder gleich" ** ist, andernfalls "sicher".
Achten Sie bei der Beurteilung mit "if" auf den Umgang mit dem Grenzwert (der Zahl an der Grenze, an der sich die Beurteilung ändert). ** "Mehr als" **, also w> = s
. Wenn die Anzahl der Wölfe ** "mehr" als die Anzahl der Schafe ** ist, dann ist "w> s".
Bitte, Beispiel 3 ist mit $ W = S $ "unsicher". Wenn dies erfolgreich ist, können Sie es mit Sicherheit einreichen.
TU es einfach. Achten Sie darauf, "unsicher" und "sicher" nicht umzukehren oder Tippfehler oder Rechtschreibfehler zu machen. Ein Fehler kann zu einer Strafe von 5 Minuten führen. Überprüfen Sie daher vor dem Absenden, ob alle Proben passen, auch wenn dies einige Zeit dauert.
s, w = list(map(int, input().split()))
if w >= s:
print("unsafe")
else:
print("safe")
Wenn Sie in eine Zeile schreiben möchten, können Sie den "ternären Operator" verwenden. Ich benutze es nicht, weil es Fehler zu verursachen scheint.
s, w = list(map(int, input().split()))
print("unsafe") if w >= s else print("safe")
ABC164B『Battle』
** Problemseite **: B --Battle ** Schwierigkeit **: ★ ☆☆☆☆ ** Punkt **: Umgang mit while, Entwicklung von Variablennamen
Es ist ein einfaches Spiel, bei dem Sie die HP des Gegners um den gleichen Betrag reduzieren können wie Ihre eigene Angriffskraft, wenn Sie angreifen. Takahashi ist der erste Spieler und Aoki ist der zweite Spieler.
Da $ A, B, C, D $ alle 100 oder weniger sind, können Sie es lösen, indem Sie es so simulieren, wie es ist. Wenn es sich um eine sehr große Zahl wie 5000 Billionen (tote Wörter) handelt, wird sie arithmetisch berechnet. (Es ist nicht wirklich wichtig, aber es gibt tatsächlich ein Problem mit 5000 Billionen in der Problemstellung)
Wenn der Variablenname so wie er ist in "a", "b", "c", "d" geändert wird, ist es schwierig zu verstehen, welche Variable was ist, und dies führt zu Verwirrung. Ich war während des Wettbewerbs verwirrt und las den Fragentext ungefähr fünfmal.
Sagen wir "tkhp", "tkat", "aohp", "aoat".
Schreib das auch einfach. Verwenden Sie für eine solche Simulation "while True", um eine Endlosschleife zu erstellen, und wenn die Bedingungen erfüllt sind, verwenden Sie "break" zum Beenden.
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
Übrigens, wenn Sie den Variablennamen als Problemstellung belassen, ist dies der folgende Code. Es ist ein Code, der Fehler hervorzurufen scheint. Sie können die Bedeutung von Variablennamen erkennen! (Selbstdisziplin)
while True:
c -= b
if c <= 0:
print("Yes")
break
a -= d
if a <= 0:
print("No")
break
ABC164C『gacha』
** Problemseite **: C - gacha ** Schwierigkeit **: ★★ ☆☆☆ ** Typ **: Verwendung des eingestellten Typs
Sie können die Bedeutung der Problemstellung leicht verstehen. Der Spaß hängt davon ab, wie Sie es implementieren.
Es gibt verschiedene Möglichkeiten, die Anzahl der Typen zu ermitteln, aber der festgelegte Typ ist der einfachste.
Wenn Sie die Eingabe normalerweise als Listentyp empfangen und dann zu einem festgelegten Typ machen, verschwindet das doppelte Element (double). Da die Anzahl der Elemente des Mengen-Typs der Anzahl der Typen selbst entspricht, können Sie die Antwort mithilfe der Funktion len ()
finden.
Ich glaube nicht, dass Sie es verstehen können, selbst wenn es in Worten gesagt wird. Es ist nicht schwierig, wenn Sie sich ansehen, was passieren wird.
>>> s = ['apple', 'orange', 'apple']
>>> s_set = set(s)
>>> s_set
{'orange', 'apple'} #Es gibt zwei'apple'Wurde einer
>>> len(s_set)
2 # 'orange'Wann'apple'Es gibt zwei Arten.
>>> s = ['grape', 'grape', 'grape', 'grape', 'grape']
>>> s_set = set(s)
>>> s_set
{'grape'} #Es gibt 5'grape'Wurde einer
>>> len(s_set)
1 # 'grape'Es ist eine Art von.
n = int(input())
s = [input() for _ in range(n)] #Ich erhalte Eingaben in einer Notation, die in einer Liste enthalten ist und ordentlich aussieht. Gleiches gilt für die for-Schleife.
ss = set(s) #Erstellen Sie einen festgelegten Typ von s. Dies ist ein schlechter Variablenname, aber es ist ein Funktionscode, also denke ich, dass es in Ordnung ist.
ans = len(ss) #Jetzt können Sie die Anzahl der Typen sehen.
print(ans)
Nur 3 Zeilen ohne Eingabe. Wenn Sie "print (len (set (s)))" verwenden, handelt es sich um eine Zeile. Wenn Sie jedoch nicht daran gewöhnt sind, versuchen Sie, nur eine Zeile pro Zeile zu erstellen.
Die Technik der Konvertierung in einen festgelegten Typ und das Ermitteln der Anzahl der Typen mit "len" wird sehr häufig verwendet. Denken Sie also daran.
Nicht relevant für dieses Problem, aber oft möchten Sie wissen, wie oft jedes Element aufgetreten ist.
In einem solchen Fall ist es einfacher, "aus Sammlungen Importzähler" zu schreiben und den Zählertyp zu verwenden. Ich benutze es so oft wie den eingestellten Typ.
Ich werde diesmal nicht erklären, wie man es benutzt. Wenn Sie es wissen wollen, schauen Sie es sich bitte an. Um kurz zu erklären, wie es aussieht, ist es ein praktischer Zähler mit verschiedenen Funktionen, die dem Diktattyp hinzugefügt werden.