Първа тренировъчна сесия

First Training Session

Тренировка

Преди да продължите нататък е силно препоръчително да отработите най-основните неща: масиви, търсене, итерация, основни структури данни, и STL. Така ще се чувствате сигурни в тях, ще ги ползвате ефективно и няма да се налага да мислите за тях, докато правите по-сложни задачи.

Цел

Да се научите да се справяте правилно и бързо с най-основните неща, нужни за състезателната информатика. Да се запознаете с фундаментални концепции като състезателна система, условие на задача, ограничения, примерен вход и изход и т.н.

Задачи

Задачите, които сме предвидили за тренировката, са най-лесните, давани в TopCoder - Div2 250. Те са създадени с цел да тестват именно тези умения, като в огромната си част изискват малко мислене и имплементация на програма, която рядко е повече от няколко реда.

Аудитория

Някои от вас най-вероятно са преминали периода, в който тази тренировка би им била полезна. Има лесен начин да проверите дали има смисъл да я правите или не. Решете няколко (3-5) стари Div2 250 задачи и вижте за колко време ги предавате. Ако успявате за над 230-240 точки, значи сте готови да продължите нататък и можете да пропуснете тренировката.

Изисквания

За да можете да направите тренировката ще трябва да се регистрирате и запознаете с не толкова лесната система на TopCoder (ако вече не сте го направили). Обяснили сме основните неща за това ето тук. Силно препоръчително е да ползвате TopCoder плъгини - това много ще ви улесни да постигнете желаните времена. Ако имате допълнително въпроси, пишете във форума.

Начин на трениране

Решавате само Div2 250 задачи от стари SRM-и. Отваряте задачата и я решавате, както бихте я решавали на истинско състезание. След като я предадете, проверете дали сте я решили вярно и си отбележете за колко точки сте сторили това.
?Препоръчваме ви да не почвате от първия Practice Room, който е достъпен в Арената. Старите задачи не са толкова добри, колкото по-новите. Съветът ни е да започнете от SRM 300 нататък, като така ще имате предостатъчно задачи за тренировка и в същото време те ще са гарантирано хубави.
Ако решението ви е грешно, оправете го и продължете да я предавате, докато успешно минете всички тестове. Ако случайно не знаете как да я решите, погледнете едиториала (само тази задача, останалите не ви интересуват за сега). Това не би трябвало да се случва често на тези задачи.

Ако сте я решили за по-малко от 230 точки, погледнете решението в едиториала. Тяхната идея същата като вашата ли е? Върнете се в арената, изчистете стария код и време и я напишете отново с идеята от едиториала (дори тя да е абсолютно същата като вашата). Тази стъпка е важна и в същото време не отнема много време - все пак имплементирате задача, която току-що сте решили и видяли авторската идея. Така ще отработите именно местата, които са ви бавили при първата имплементация.

Продължителност

Продължете да решавате докато постигнете резултати над 230-240 точки на четири от пет последователни задачи. Div2 250 задачите се очаква да отнемат не повече от десетина минути, и много рядко повече от половин час. В общия случай ще можете да правите по няколко задачи на ден без това да ви отнема твърде много време (може би с изключение на хората, които отскоро се занимават с информатика).

Цялата тренировка се очаква да бъде между 50 и 100 задачи. Ако сте се занимавали поне малко с програмиране преди (поне няколко месеца), тя би трябвало да ви отнеме две до шест седмици. Ако не сте, може да ви отнеме малко повече време (до три месеца). Имайте предвид, че нейната цел е да бъде "ударна" тренировка, затова не я проточвайте твърде дълго.

Резултат

След като завършите тази тренировка, ще можете да пишете бързо и правилно кода, който ще ви е нужен за 90% от задачите. Също така ще ви гарантира зелен рейтинг в TopCoder.


За да предложите корекция, селектирайте думата или текста, който искате да бъде променен,
натиснете Enter и изпратете Вашето предложение.
Страницата е посетена 2831 пъти.

Предложете корекция

Selected text (if you see this, there is something wrong)

(Незадължително) E-mail за обратна връзка: