Skip to content

LeTim42/Olymp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

122 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Полезные вещи для олимпиадного программирования

main.cpp + olymp/*.hpp — шаблон и заголовки

Здесь есть:
  • поиски на монотонных/унимодальных функциях
  • работа с модульной арифметикой
  • умножение с помощью БПФ
  • работа с графами
  • генерация случайных объектов
  • работа с геометрией
  • суффиксный автомат
  • дерево палиндромов
  • работа со строками
  • свой bitset
  • алгоритмы теории чисел
  • длинная арифметика
  • класс рациональных чисел
  • система непересекающихся множеств
  • разреженная таблица
  • дерево отрезков (без и с lazy propagation)
  • локальный ввод/вывод через файлы
  • быстрый ввод/вывод и мультитест
  • шаблон для стресс-теста
  • макросы для дебага (в т.ч. в рекурсивных функциях)

clone.cpp — дублирование шаблона для контеста

Использование: clone directory last_problem
  • directory – папка, в которую дублировать шаблон
  • last_problem – буква, обозначающая последнюю задачу

Например, clone contest H продублирует шаблон main.cpp в папку contest как A.cpp, B.cpp, ..., H.cpp, а также скопирует сам шаблон main.cpp, файл ввода input.txt и папку с заголовками olymp

include.cpp — включение заголовков из папки olymp в один файл

clean.cpp — очистка неиспользуемого кода

Что делает эта программа
  • Убирает неиспользуемые #define, typedef, using, namespace, class, struct, функции и переменные построчно
  • Не убирает лишние #include
  • Содержимое функций оставляет неизменным
  • Так как парсер не идеальный, может оставить часть неиспользуемого кода
  • Чтобы часть кода гарантированно не была удалена, заключить ее между #define DONT_CLEAN и #undef DONT_CLEAN

run.bat — компиляция и запуск кода

Использование: run input.cpp
  • input.cpp – название файла с кодом

Для удобного запуска из VS Code: F1 -> Preferences: Open Keyboard Shortcuts (JSON) -> В конец файла дописать: , { "key": "f9", "command": "workbench.action.terminal.sendSequence", "args": { "text": "run \"${file}\"\n" } } и добавить папку с репозиторием в системную переменную PATH

Что делает этот скрипт
  • Удаляет исполняемый файл a.exe
  • Компилирует файл с кодом input.cpp
  • Запускает программу include для файла input.cpp
  • Запускает программу clean для вывода программы include
  • Копирует вывод программы clean в буфер обмена
  • Запускает скомпилированную программу a.exe

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors