Skip to content

Решенные задания с тренировок по алгоритмам от Яндекса на C++ и Python

Notifications You must be signed in to change notification settings

async-pizza/Yandex.Training

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Тренировки по алгоритмам

Мои решения задач курса "Тренировки по алгоритмам" от Яндекса на языках C++ и Python

Часть 1.0 (2021)

Лекция Решения 1.0
1 Сложность, тестирование, особые случаи 10/10 C++
2 Линейный поиск 10/10 C++
3 Множества 10/10 C++
4 Словари и сортировка подсчётом 10/10 C++
5 Префиксные суммы и два указателя 10/10 C++
6 Бинарный поиск 11/11 Python
7 Сортировка событий 2/10 Python
8 Деревья 10/10 C++/Python

Другие контесты

Контест Решения
Тренировочный контест - бэкенд 2/5 Python/C++

Трудности разработки

Проблема с типом int в C++ (встречается в занятиях 2: G,H / 4: E,F / 5: D,G)

Проблема: Ошибка WA на больших количествах тестах: 10-50
Причина: В данных заданиях используются большие значения, которые превосходят тип int в C++, т.е. больше $2*10^9$
Решение: Следует использовать long
Совет: Смотрите внимательно на ограничения по значениям в задании. Также учитывайте особенности C++, например, дан код:

long count = 0;
int rangeLen = r - l;
count += (rangeLen - 1) * (rangeLen - 2) * 3;

В данном случае rangeLen не может быть больше $2*10^9$, а вот выражение (rangeLen - 1) * (rangeLen - 2) * 3 вполне может, и, не смотря на то, что слева переменная типа long, выражение справа всё ещё int и, в результате, к count прибавиться переполненное значение. Поэтому в данном случае rangeLen должен быть long.

About

Решенные задания с тренировок по алгоритмам от Яндекса на C++ и Python

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published