Límites Prácticos y Memoria
La Regla de Oro: ops/seg
Section titled “La Regla de Oro: 10810^8108 ops/seg”En la mayoría de los jueces (Codeforces, LeetCode, OmegaUp), el límite de tiempo estándar es de 1 segundo.
Una computadora moderna puede ejecutar aproximadamente (100 millones) de operaciones elementales por segundo.
Tabla de Referencia Rápida
Section titled “Tabla de Referencia Rápida”Antes de escribir código, mira el valor máximo de en el problema y busca qué complejidad te puedes permitir:
| Límite de | Complejidad Aceptable | Algoritmos Posibles |
|---|---|---|
| Permutaciones, Backtracking puro. | ||
| Máscaras de Bits, Subsets, Backtracking. | ||
| Floyd-Warshall, Multiplicación de Matrices. | ||
| Bubble Sort, DP básica, Pares iterativos. | ||
std::sort, Map/Set, Segment Tree. | ||
| Two Pointers, Sliding Window, KMP, Hashing. | ||
| Primalidad, Factorización. | ||
| Binary Search, Exponenciación Binaria. |
Complejidad Espacial (Memoria)
Section titled “Complejidad Espacial (Memoria)”El tiempo no lo es todo. Si usas demasiada RAM, obtendrás Memory Limit Exceeded (MLE).
Unidades Básicas
Section titled “Unidades Básicas”int: 4 bytes.long long: 8 bytes.char: 1 byte.- Límite típico: 256 MB.
Cálculo Rápido
Section titled “Cálculo Rápido”Un arreglo de int de tamaño (10 millones) ocupa:
Esto es seguro. Pero un arreglo de int ocuparía 400 MB MLE.