Löse den AtCoder-Anfängerwettbewerb159 D - Verbotenes K (ABC159D) mit Python (Anzahl ist zu langsam!)

Wenn ich normalerweise die Zählmethode von Python verwendete, tat ich TLE. Als ich versuchte, Counter zu verwenden, konnte ich AC.

image.png

Unten ist die Antwort mit Counter.

code.py


import sys
from collections import Counter
N=int(sys.stdin.readline())
L=list(map(int,sys.stdin.readline().split()))
C=Counter(L)           #In L enthalten{Brief:Anzahl der Auftritte}Ich werde mit dem Wörterbuchtyp zurückkommen
x=0
for a in C.values():   #Extrahieren Sie nur den Wert (Anzahl der Vorkommen)
  x += int(a*(a-1)/2)  
for K in range(N):
  print(x-C[L[K]]+1)   #Subtrahieren Sie die Kombination, die K enthält, von der gleichen Anzahl von Kombinationen

Unten ist die TLE-Antwort. Wird es mit ein wenig Basteln schneller gehen?

code.py


import sys
N=int(sys.stdin.readline())
L=list(map(int,sys.stdin.readline().split()))
C=list(set(L))
x=0
for i in range(len(C)):
  a = L.count(C[i])
  x += int(a*(a-1)/2)  
for K in range(N):
  print(x-L.count(L[K])+1)

Recommended Posts

Löse den AtCoder-Anfängerwettbewerb159 D - Verbotenes K (ABC159D) mit Python (Anzahl ist zu langsam!)
Löse den AtCoder-Anfängerwettbewerb 170 D - Nicht teilbar (ABC170D) mit Python (Eratostenes-Sieb)
Löse AtCoder ABC168 mit Python (A ~ D)
AtCoder Anfängerwettbewerb: D Problemantworten Python
Löse "AtCoder Version! Arimoto (Anfänger)" mit Python!
Löse AtCoder 167 mit Python
Löse AtCoder ABC166 mit Python
Atcoder Anfänger Wettbewerb 152 Kiroku (Python)
Lösen mit Ruby und Python AtCoder ABC133 D Kumulative Summe
Löse ABC166 A ~ D mit Python
Beheben von AtCoder-Problemen Empfehlung mit Python (20200517-0523)
AtCoder Anfängerwettbewerb 174 C Problem (Python)
[AtCoder] Löse ABC1 ~ 100 Ein Problem mit Python
Lösen mit Ruby und Python AtCoder ABC084 D Kumulative Summe der Primzahlen
[At Coder] Anfängerwettbewerb 175 Einführung in die ABCD-Python-Lösung
[AtCoder] Lösen Sie ein Problem von ABC101 ~ 169 mit Python
Ich wollte den NOMURA Contest 2020 mit Python lösen
AtCoder Beginner Contest 169, D. Div Spiel-Funktionscode
Löse A ~ D des Yuki-Codierers 247 mit Python
AtCoder Anfängerwettbewerb 177
AtCoder Anfängerwettbewerb 179
AtCoder Anfängerwettbewerb 172
AtCoder Anfängerwettbewerb 180
AtCoder Anfängerwettbewerb 173
Atcoder Anfänger Wettbewerb 153
AtCoder Anfängerwettbewerb 176 C Problem "Schritt" Erklärung (Python3, C ++, Java)
[Python] [BFS] Beim Coder-Anfängerwettbewerb 168-D [.. Double Dots]