Täglicher AtCoder # 33 in Python

Einführung

Letztes Mal Heute werden wir das Boot Camp für Anfänger für At Coder Probleme ausfüllen. Der Schwierigkeitsgrad ist Mittel.

#33 AGC029-A 1TLE

** Gedanken ** schwer. B und W werden umgeschaltet, wenn die Operation ausgeführt wird. Schließlich befindet sich W links und B rechts. Damit $ W_i (1 \ leq i \ leq N) $ nach links geht, müssen Sie alle Bs links von diesem W bearbeiten. Wenn Sie also die Zahl B links von $ W_i (1 \ leq i \ leq N) $ hinzufügen, ist die Antwort korrekt.

s = list(input())

ans = 0
count_b = 0
n = len(s)
for i in range(n):
    if s[i] == 'B':
        count_b += 1
    if s[i] == 'W':
        ans += count_b

print(ans)

ABC139-D 1WA

** Gedanken ** Es ist ein Problem mit dem Rest. Finden Sie den Maximalwert des gesamten Restbetrags, wenn $ i (1 \ leq i \ leq N $ durch $ P_i $ geteilt wird) für die Zahlenfolge $ P $, in der ganze Zahlen bis zu $ N $ neu angeordnet werden. $ Denkt, dass die ganzen Zahlen bis zu $ N $ in aufsteigender Reihenfolge angeordnet sind. Wenn Sie den Vorgang fortsetzen, beträgt der Restbetrag 0. Wenn Sie $ P $ um eins nach rechts verschieben, beträgt er $ N-1 $. Dies liegt daran, dass $ P_i $ 1 kleiner als $ i $ ist, was bedeutet, dass beim Verschieben nach links die Summe der verbleibenden Reste maximiert wird, da beim Verschieben nach links $ kleiner als $ i $ ist. P_i $ wird um 1 erhöht. Dann ist $ i % P_i = i $. Beachten Sie, dass der Rest nur bei $ P_i = 1 $ 0 ist, die Summe der verbleibenden $ \ frac {N (N) -1)} {2} $. Detaillierte Beweise finden Sie in der Erklärung.

n = int(input())

print(n*(n-1)//2)

Zusammenfassung

Ich mache mir Sorgen um das ABC von morgen, weil ich mich in letzter Zeit nicht hingegeben habe. Wir sehen uns wieder, gute Nacht.

Recommended Posts

Täglicher AtCoder # 36 mit Python
Täglicher AtCoder # 32 in Python
Täglicher AtCoder # 6 in Python
Täglicher AtCoder # 18 in Python
Täglicher AtCoder # 53 in Python
Täglicher AtCoder # 33 in Python
Täglicher AtCoder # 7 in Python
AtCoder # 24 jeden Tag mit Python
Täglicher AtCoder # 37 in Python
AtCoder # 8 jeden Tag mit Python
Täglicher AtCoder # 42 in Python
Täglicher AtCoder # 21 mit Python
Täglicher AtCoder # 17 mit Python
Täglicher AtCoder # 38 in Python
Täglicher AtCoder # 54 in Python
Täglicher AtCoder # 11 in Python
Täglicher AtCoder # 15 in Python
Täglicher AtCoder # 47 mit Python
Täglicher AtCoder # 13 in Python
Täglicher AtCoder # 45 mit Python
AtCoder # 30 jeden Tag in Python
Täglicher AtCoder # 40 mit Python
Täglicher AtCoder # 10 mit Python
AtCoder # 5 jeden Tag mit Python
Täglicher AtCoder # 28 in Python
Täglicher AtCoder # 39 in Python
Täglicher AtCoder # 20 in Python
Täglicher AtCoder # 19 in Python
Täglicher AtCoder # 52 in Python
Täglicher AtCoder # 3 in Python
Täglicher AtCoder # 14 mit Python
Täglicher AtCoder # 50 mit Python
Täglicher AtCoder # 26 mit Python
Täglicher AtCoder # 4 mit Python
Täglicher AtCoder # 43 in Python
Täglicher AtCoder # 29 in Python
Jeden Tag mit Python AtCoder # 22
Täglicher AtCoder # 49 in Python
Täglicher AtCoder # 27 in Python
AtCoder # 1 jeden Tag mit Python
Täglicher AtCoder # 25 mit Python
Täglicher AtCoder # 16 in Python
Täglicher AtCoder # 12 in Python
Täglicher AtCoder # 48 in Python
Täglicher AtCoder # 23 in Python
Täglicher AtCoder # 34 in Python
Täglicher AtCoder # 51 mit Python
Täglicher AtCoder # 31 in Python
Jeden Tag mit Python AtCoder # 46
Täglicher AtCoder # 35 mit Python
AtCoder # 9 jeden Tag mit Python
Täglicher AtCoder # 44 mit Python
Jeden Tag mit Python AtCoder # 41
Atcoder ABC164 A-C in Python
atCoder 173 Python
Python-Eingabehinweis in AtCoder
Atcoder ABC167 A-D in Python
Atcoder ABC165 A-D in Python
Atcoder ABC166 A-E in Python
Atcoder ABC169 A-E in Python
AtCoder ABC177 A-D mit Python