Atcoder ABC166 A-E en Python

C'était à nouveau complet. E est le commentaire AC. Comme le code du concours est affiché tel quel, il peut y avoir des parties disgracieuses, mais pardonnez-moi s'il vous plaît.

A. A?C Renvoie ARC si l'entrée est ABC, ABC sinon

ABC166a.py


s=input()

if s=="ABC":
    print("ARC")
else:
    print("ABC")

B. Trick or Treat Pour tous les bonbons, ajoutez +1 à l'index de l'enfant que vous avez. Enfin, comptez et sortez les enfants qui n'ont pas de bonbons.

ABC166b.py


n,k=map(int,input().split())
d=[]
a=[]
for i in range(k):
    d.append(int(input()))
    a.append(list(map(int,input().split())))
    
aa=[0]*n

for j in a:
    for k in j:
        aa[k-1]+=1 #Index de l'enfant qui a des bonbons+1
        
ans=0

for x in aa:
    if x==0:
        ans+=1 #Le nombre d'enfants qui n'ont pas de bonbons est de 0, alors comptez le nombre d'enfants.

print(ans)

C. Peaks Préparez un tableau de la même longueur que le nombre de sommets, comparez les hauteurs des deux sommets et ajoutez +1 au sommet inférieur. Si les hauteurs sont identiques, les deux sont incrémentées de +1. Enfin, le nombre de sommets dont la valeur est 0 est affiché. À propos, une route ne signifiait que la route menant au sommet, pas celle qui pouvait être atteinte d'un seul coup. J'ai mal compris et j'ai perdu du temps.

ABC166c.py


import copy

n,m=map(int,input().split())
h=list(map(int,input().split()))
l=[]
for i in range(m):
    a,b=map(int,input().split())
    l.append([a,b])
    
ll=[0]*n

for j in l:
    if h[j[0]-1]>h[j[1]-1]:
        ll[j[1]-1]+=1
    elif h[j[0]-1]==h[j[1]-1]:
        ll[j[1]-1]+=1
        ll[j[0]-1]+=1
    else:
        ll[j[0]-1]+=1

ans=0
#print(ll)
for k in ll:
    if k==0:
        ans+=1
print(ans)

D. I hate factorization Puisqu'il n'y a aucune restriction sur $ A $ ou $ B $, le tournoi à la ronde ne devient pas TLE: j'ai préparé environ 1000 pièces et calculé. Commentaire officiel En y regardant, il semble qu'environ 250 nombres négatifs sont suffisants. Il est nécessaire de prendre abs une fois car la racine de puissance d'un nombre négatif n'est pas sortie correctement.

ABC166d.py


x=int(input())
l=[]

for i in range(300): #300**5=X inférieur à 2430000000000^Nombre pouvant être représenté par 5 (-x inclus) ajouté
    a=i**5
    l.append(a)
    l.append(-a)
        
for j in l:
    for k in l:
        aa=j-k
        if j!=k and aa==x:
            ans=[]
            for z in [j,k]:
                aaa=abs(z)**(1/5) #5ème racine
                if z>=0:
                    ans.append(int(aaa))
                else:
                    ans.append(int(-aaa))
            print(*ans)                
            exit()

E. This Message Will Self-Destruct in 5s Voir Explication officielle pour l'approche. Préparez la somme de la valeur d'index et de la hauteur et la différence entre la valeur d'index et la hauteur. Puis comptez le nombre de motifs où les deux valeurs correspondent. Spécifiquement, deux tableaux l et r sont préparés, et le nombre de r ayant la même valeur pour chaque élément de l est compté. Quand j'ai utilisé count, il est devenu TLE, j'ai donc utilisé Counter pour le stocker sous forme de tableau associatif et je l'ai récupéré. Je n'ai pas vérifié à quelle vitesse il est ...

ABC166e_TLE.py


from collections import Counter

n=int(input())
a=list(map(int,input().split()))
ans=0
l=[]
r=[]
for i,j in enumerate(a):
    l.append(i+j)
    r.append(i-j)

for i in l:
    ans+=r.count(i)
    
print(ans)

ABC166e.py


from collections import Counter

n=int(input())
a=list(map(int,input().split()))
ans=0
l=[]
r=[]
for i,j in enumerate(a):
    l.append(i+j)
    r.append(i-j)

b=Counter(r)
for i in l:
    ans+=b.get(i,0)

print(ans)

Si vous ne pouvez pas résoudre D en 30 à 40 minutes environ, la route vers le bleu clair ne sera pas ouverte. Je dois faire de mon mieux

Recommended Posts

Atcoder ABC166 A-E en Python
Atcoder ABC169 A-E en Python
Atcoder ABC164 A-C en Python
Atcoder ABC167 A-D en Python
Atcoder ABC165 A-D en Python
AtCoder ABC177 A-D avec python
AtCoder ABC 175 Python
Résoudre Atcoder ABC169 A-D avec Python
AtCoder # 36 quotidien avec Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 6 en Python
Daily AtCoder # 18 en Python
Daily AtCoder # 53 en Python
Daily AtCoder # 33 en Python
AtCoder # 7 tous les jours avec Python
AtCoder # 24 tous les jours avec Python
Daily AtCoder # 37 en Python
AtCoder # 8 tous les jours avec Python
Daily AtCoder # 42 en Python
Daily AtCoder # 17 avec Python
Daily AtCoder # 54 en Python
Daily AtCoder # 11 en Python
Daily AtCoder # 47 avec Python
Daily AtCoder # 13 en Python
AtCoder # 45 quotidien avec Python
AtCoder # 30 tous les jours en Python
AtCoder # 40 quotidien avec Python
AtCoder # 10 quotidien avec Python
AtCoder # 5 tous les jours avec Python
Daily AtCoder # 28 en Python
AtCoder # 39 quotidien avec Python
Daily AtCoder # 19 en Python
Daily AtCoder # 52 en Python
Daily AtCoder # 3 en Python
Daily AtCoder # 14 avec Python
Daily AtCoder # 50 avec Python
Daily AtCoder # 26 avec Python
AtCoder quotidien # 4 avec Python
Daily AtCoder # 43 en Python
Daily AtCoder # 29 en Python
Tous les jours avec Python AtCoder # 22
Daily AtCoder # 49 en Python
Daily AtCoder # 27 en Python
Résolvez ABC169 avec Python
Daily AtCoder # 25 avec Python
Daily AtCoder # 16 en Python
Daily AtCoder # 12 en Python
Daily AtCoder # 48 en Python
Daily AtCoder # 23 en Python
Daily AtCoder # 34 en Python
AtCoder # 51 quotidien avec Python
Daily AtCoder # 31 en Python
Daily AtCoder # 46 en Python
AtCoder # 35 quotidien avec Python
AtCoder # 9 tous les jours avec Python
Daily AtCoder # 44 avec Python
Daily AtCoder # 41 en Python
AtCoder ABC 177 Python (A ~ E)