Bruteforce

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

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

Последно, на състезания, в които нямаме feedback за изпратените от нас решения преди края (например CodeForces, TopCoder, ACM ICPC, а също и някои задачи по ученически състезания), понякога е полезно да напишем bruteforce решение с което да тестваме 'умното' ни такова. Обикновено така се откриват бъгове, като плюсът е, че имаме и тест, с който да ги дебъгваме (знаем верния отговор за него от брутфорс решението).
Мрън!