После прочтения каждой задачи, или даже до я смотрю ограничения и прикидываю какой сложности должен быть алгоритм, чтобы он прошёл тесты(допустим 10^9 не пройдёт при ограничениях 1-2 секунды).Так как у меня пока что мало опыта, если кто-то уже делал похожий анализ. Можете,пожалуйста, поделится или напишите ваше мнение, может это вообще не нужно делать.
$$$n \le 18$$$ $$$O(2^n n^2)$$$
$$$n \le 20$$$ $$$O(2^n n)$$$ (иногда $$$n^2$$$)
$$$n \le 100$$$ $$$O(n^4)$$$
$$$n \le 500-800$$$ $$$O(n^3)$$$
$$$n \le 1000-4000$$$ $$$O(n^2 log n)$$$
$$$n \le 5000-10000$$$ $$$O(n^2)$$$ иногда нельзя $$$O(n^2)$$$ памяти
$$$n \le 5 \cdot 10^4$$$ $$$O(n \sqrt{n} log n)$$$
$$$n \le 10^5$$$ $$$O(n \sqrt{n})$$$ или $$$O(n log^2 n)$$$
$$$n \le 2 \cdot 10^5$$$ $$$O(n \sqrt{n})$$$ или $$$O(n log^2 n)$$$
$$$n \le 4-5 \cdot 10^5$$$ (или до $$$10^6$$$) $$$O(n logn)$$$
Это примерно что часто бывает на ограничениях по $$$n$$$, но это лишь очень примерные асимптотики и далеко не всегда совпадают с решением, это скорее к чему стоит стремиться.
Ещё бывают ограничения на другие числа в задаче, часто это $$$\le n$$$, $$$\le 10^6$$$, $$$\le 10^9$$$, $$$\le 10^{12}$$$, $$$\le 10^{18}$$$, иногда это тоже важно
Спасибо.