Блог пользователя A1ternate

Автор A1ternate, история, 5 месяцев назад, По-русски

После прочтения каждой задачи, или даже до я смотрю ограничения и прикидываю какой сложности должен быть алгоритм, чтобы он прошёл тесты(допустим 10^9 не пройдёт при ограничениях 1-2 секунды).Так как у меня пока что мало опыта, если кто-то уже делал похожий анализ. Можете,пожалуйста, поделится или напишите ваше мнение, может это вообще не нужно делать.

  • Проголосовать: нравится
  • +8
  • Проголосовать: не нравится

»
5 месяцев назад, # |
Rev. 2   Проголосовать: нравится +32 Проголосовать: не нравится

$$$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}$$$, иногда это тоже важно