Trik to pojęcie względne. Akurat w przypadku omawianego tricku związanego z iloczynem wektorowym, jest on tak znany i tak prosty w użyciu (przynajmniej w 2D), że uznaje się go za wiedzę dość elementarną. Rozwiązywanie zadań robionych pod tę sztuczkę bez jej znajomości mija się z celem.
Proszenie o pomoc nie jest problemem. Ba - jest wskazane. Choć spotkałem się pośród starszych speców od AjTi z takim podejściem do projektu:
- możesz zadać pierwsze pytanie bo niczego nie wiesz,
- możesz zadać drugie pytanie bo złożona odpowiedź, którą udzielono Ci za pierwszym razem musi zostać przetrawiona,
- jak pytasz po raz trzeci to nie ma sensu Ci odpowiadać bo zapytasz po raz czwarty
Zadania łatwe są w dużej mierze do “przepałowania”. Od średnich robi się bardziej wesoło. Tak w zasadzie zadania łatwe, jak już ogarniasz kodowanie, wymagają wyłącznie cierpliwości i chęci.
Na koniec kilka innych tricków, które przychodzą mi do głowy, a na których ludzie często wypieprzają się na SPOJu
- Robienie czegoś samemu, następnie kopiowanie i wklejanie do kolejnych zadań. Dotyczy to zwłaszcza funkcji sortujących albo różnych innych, de facto bibliotecznych rozwiązań. Jeżeli masz taką możliwość + chęć nauki to ok - zrób raz własnego sorta, pobaw się, ale przechodząc do kolejnych zadań korzystaj z możliwości języka a nie twórz własny.
- Eliminacja Gaussa dla układów równań liniowych. To klasyka, a ludzie często nie wiedzą jak zabrać się za układ równań i kombinują jak koń pod górę.
- Problem plecakowy i wydawanie reszty. To akurat na tyle kultowe, że fajnie o tym wiedzieć coś więcej i nie walić zachłannymi algorytmami bez sensu.
- Flood fill. W zasadzie pierwsza myśl gdy jesteś na środku szachownicy (tablicy) zwłaszcza z “bajerami” typu ściany (labirynt). Proste w implementacji, nie wymaga wiedzy o grafach/BFS bo zwyczajnie “to widać”. Ewentualnie można sobie pograć w Sapera.
- brak wiedzy o źródłach takich jak np. oeis.org4 . Często masz “wizję”, po godzinie widzisz pięć kolejnych liczb w jakimś dzikim ciągu i czujesz, że to się da jakoś prosto wygenerować, ale nie wiesz jak ani czy Twoja intuicja jest dobra. To dobre miejsce do jej zweryfikowania.
- Jest sobie jakiś punkt na płaszczyźnie w metryce Manhattan. Masz też dość skomplikowany układ poziomych i pionowych kresek wyznaczających coś typu ściany budynków. Pytanie brzmi czy punkt jest wewnątrz jakiegoś budynku. Problem kultowy choć mniej niż iloczyn wektorowy, ale również prosty.
- Fajnie umieć zapisać graf do tablicy i po nim przejść. Wysiłek niewielki, żadnych cudów ogarniać nie musisz, ale już dostajesz niewielkim wysiłkiem (mało nauki) świetne narzędzie do trzaskania nieraz złożonych problemów. Może i niewydajnie, ale już poprawnie. Po dodaniu iluś tricków, o które mniejsza, grafy pozwalają rozwalić niemalże wszystko. Ba - często widzisz, że dany problem jest grafowy, choć może nie widzisz finalnego algorytmu.