Résoudre ABC098-C en Python

introduction

La personne de PyBegi a résolu le problème, je vais donc m'en servir.

ABC098-C Attention

** Pensées ** En raison de la limitation du problème, il doit être réglé à environ $ O (N) $ au maximum, il ne suffit donc pas de calculer pour chaque leader. Par conséquent, nous utilisons la somme cumulée. Vous pouvez maintenant calculer pour chaque lecteur sans avoir à $ sum $ à chaque fois. À propos, le montant du calcul pour $ sum $ en Python est $ O (N) $. Si vous comprenez jusqu'ici, faites-le.

n = int(input())
s = input()

count_e = [0] * n
count_w = [0] * n
for i in range(n):
    if i == 0:
        if s[i] == 'E':
            count_e[i] = 1
        else:
            count_w[i] = 1
        continue
    if s[i] == 'E':
        count_e[i] = count_e[i-1] + 1
        count_w[i] = count_w[i-1]
    else:
        count_e[i] = count_e[i-1]
        count_w[i] = count_w[i-1] + 1

ans = 10 ** 9 #e+w est au plus 3*10**C'est environ 5, mais j'ai une marge
for i in range(n):
    if s[i] == 'E':
        e = count_e[-1] - count_e[i] #Utiliser la somme cumulée
        w = count_w[i]
    else:
        e = count_e[-1] - count_e[i] #Utiliser la somme cumulée
        w = count_w[i] - 1 #Soustrayez votre part
    ans = min(ans,e+w)
print(ans)

Résumé

Je suis content d'avoir trouvé un algorithme qui peut être utilisé en regardant les contraintes. A bientôt, bonne nuit.

Recommended Posts

Résoudre ABC098-C en Python
Résoudre ABC168D en Python
Résolvez ABC167-D avec Python
Résoudre ABC159-D en Python
Résolvez ABC169 avec Python
Résolvez ABC160-E avec Python
Résoudre ABC176 E en Python
Résolvez des exercices Wooldridge en Python
Résoudre ABC175 D en Python
Résoudre les problèmes d'optimisation avec Python
Résoudre Atcoder ABC169 A-D avec Python
Résoudre ABC036 A ~ C avec Python
Résoudre ABC037 A ~ C avec Python
Résoudre des équations différentielles normales en Python
Quadtree en Python --2
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
Résoudre ABC175 A, B, C avec Python
ABC 157 D - Résolvez les suggestions d'amis en Python!
Je voulais résoudre ABC159 avec Python
Résoudre ABC165 A, B, D avec Python
Résolvez le problème maximum de sous-tableau en Python
Liste triée en Python