Чи реально бути самоучкою у спортивному програмуванні?

      У цій статті на це та інші питання, які хвилюють початківців-олімпіадників, відповідає випускник ХНУРЕ, аспірант кафедри ШІ факультету КН Матвій Асландуков.

 

      Бажання досягти в тій чи іншій сфері діяльності результатів, гідних не лише самоповаги, а й визнання серед професійного оточення, неможливе без наявності знань. Тож перші кроки на шляху до спортивного програмування — це вміння знайти та здобути необхідні знання.

 

Чи важлива математика для програміста-олімпіадника?

З математики найбільше важливим є саме логічне мислення, яке допомагає вигадувати розв'язання нестандартних задач. Я б виокремив такі напрямки, як основні: теорія чисел, комбінаторика і теорія ймовірностей, аналітична геометрія, теорія ігор.

      У кожному з них є як прості теми (наприклад, алгоритм Евкліда, системи числення, базові комбінаторні величини, перевірка двох відрізків на перетин, розставлення виграшних/програшних позицій), так і дуже просунуті (швидке перетворення Фур'є, інтерполяційний многочлен Лагранжа, операції над формальними степеневими рядами, діаграма Вороного, теорія Шпрага-Гранді).

      Рідше ще може бути корисною лінійна алгебра (здебільшого для розв'язування систем лінійних рівнянь або для побудови бітового базису), мат. аналіз (наприклад, для розв'язування задач багатовимірної оптимізації за допомогою взяття похідних).

  

 

У чому роль тренера в спортивному програмуванні (СП)?

Мені здається, що наявність хорошого вчителя більшою мірою важлива на початку олімпіадного шляху, коли закладається фундамент для подальшого розвитку. У цьому плані мені дуже пощастило: після того, як я взяв I диплом на всеукраїнській олімпіаді з інформатики у 8 класі, вийшло домовитися про заняття з одним із найсильніших на той момент харківських олімпіадників Женею Соболєвим. За пів року він зміг розповісти мені більшість найкорисніших алгоритмів і структур даних, що дозволило вийти на кардинально новий рівень. А маючи міцну базу, мені вже було набагато простіше далі самостійно розвиватися: потрібно було просто набиратися практичного досвіду шляхом «нарішування» великого архіву задач, тим самим закріплюючи вивчені алгоритми.

      У ХНУРЕ головним тренером усіх команд є Вечур Олександр Володимирович. Зокрема, він знаходить спонсорів для оплати поїздок на різні змагання/збори, допомагає ці поїздки організовувати, виділяє аудиторії в університеті для тренувань, щоб різні команди могли збиратися разом, і навіть просто мотивує студентів тренуватися. Він досить багато зробив для нашої команди. Ми, олімпіадники, вдячні, зокрема, йому і загалом ХНУРЕ за підтримку розвитку спортивного програмування в університеті.

       До університету я вступив, маючи за плечима вже досить серйозні досягнення. Зокрема, я був срібним призером міжнародної олімпіади, тож серед ХНУРЕ-них команд ми одразу добряче вирвалися в лідери. Нам не було за ким (командою) тягнутися тут, через що доводилося досить багато самостійно тренуватися, і певною мірою нас можна назвати самоучками.

      Плюс, звісно, на нашому шляху зустрічалося дуже багато сильних олімпіадників і вчителів (здебільшого на різноманітних зборах із програмування), у яких ми намагалися по максимуму переймати досвід. Усім їм хочеться сказати величезне спасибі.

 



— Де черпати знання для участі в олімпіадах?
Для самостійного вивчення є гарний сайт https://e-maxx.ru/algo/ (і його розширена англомовна версія https://cp-algorithms.com/), де зібрані найпопулярніші та найкорисніші алгоритми для спортивного програмування.

      Також на платформі https://codeforces.com/ написано безліч корисних статей з оглядами як найпростіших речей, так і дуже просунутих недавно винайдених технік.
      Ще періодично проводяться збори з програмування: в Україні вони проводилися в Ужгороді та у Львові.
 
      Отже, насамкінець хочеться звернути вашу увагу на слова Матвія, який наголосив, що «…бути самоучкою абсолютно реально, але в будь-якому разі варто мати коло однодумців, з якими завжди можна обговорити якусь тему, якщо не виходить розібратися самому, а внутрішня конкуренція створюватиме додаткові стимули для швидкого розвитку».

 
Дякуємо Матвію Асландукову за інтерв'ю.
Бесіду вів Олег Топорков

 

 

 

 

Популярні статті

Читати далі