Все о математике

раз вы здесь, это означает, что вы хотели узнать, как решать математические задачи, которые нельзя решить с помощью калькулятора, вы должны быть уверены в том, что вам предстоит много заниматься математикой, поэтому постарайтесь освежить ваша концепция по математике, особенно-

  1. Теория чисел
  2. Геометрия
  3. Комбинаторика
  4. Перестановки

Язык программирования

вот и все, вы готовы приступить к своим математическим навыкам, теперь вам нужен язык программирования, чтобы передать свои идеи вычислительному блоку на сервере, так что освойте язык программирования.
выберите любой язык программирования, но лучше пойти с любым из этих

  1. С/С++ с STL
  2. Java с библиотекой Java.util
  3. Питон

Выберите платформу

теперь вам предстоит выбрать платформу для практики, их много но эти лучше всего подходят для новичков-

  1. Кодшеф
  2. Хакерранк
  3. Хакерзем

Примечание. Хорошо решать все задачи на одной платформе, так как выполнение большинства простых задач на всех платформах вам совсем не поможет.

После того, как вы решите несколько задач (более 50 в каждой), вы можете перейти к некоторым продвинутым платформам, таким как:

  1. Codeforces
  2. Топкодер

Примечание. Не выполняйте все простые вопросы один раз, после того как вы ответили на 10–15 вопросов уровня, попробуйте перейти на следующий уровень, если вы не чувствуете себя комфортно на этом уровне, вернитесь и попробуйте еще одну задачу.

Движение вперед

вы определенно сталкиваетесь с более сложными проблемами, которые не нуждаются только в интуиции, им нужны либо лучшие алгоритмы, либо лучшие структуры данных, и вы никогда не сможете решить их без их использования (если вы не вундеркинд).
так трогательно вперед, вам нужно изучить структуры данных, подобные этим:

  1. Стек? (уже в C++ STL и Java.util)
  2. Очередь (уже в C++ STL и Java.util)
  3. Связанный список (уже в C++ STL и Java.util)
  4. Деревья (уже в C++ STL и Java.util)
  5. График (не в C++ STL)

Там также есть некоторые продвинутые структуры данных, которые вам нужно изучить, например

  1. Дерево сегментов
  2. Самобалансирующееся дерево (например, AVL, Red Black)
  3. Суффиксное дерево
  4. Дерево Фенвика

Продолжай учиться

Я знаю, что поначалу это сложно понять, но обучение решению проблем — это непрерывный процесс. Большинство людей, занимающих высокие места в списках лидеров на любом сайте, программируют уже много лет (по крайней мере, более 5 лет),
так что не сдавайтесь, если вы обнаружите какую-то проблему, которая была решена другими, и вы не можете найти для нее решение.

#счастливое кодирование