Na OI to głównie potrzebna jest matematyka dyskretna, może też jakieś podstawy geometrii jak np. równania prostych przechodzących przez 2 punkty, kąt między prostymi.
Z matematyki dyskretnej na pewno ważne są takie tematy jak arytmetyka modularna, pierwszość i faktoryzacja liczb (w tym na pewno tw. Eulera i funkja Eulera), kombinatoryka i oczywiście cała teoria o grafach.
Ale nawet ważniejsza powiedziałbym jest znajomość algorytmów matematycznych. Czyli np. powinieneś wiedzieć jak zaimplementować roszerzony algorytm Euklidesa, szybkie potęgowanie, sprawdzanie pierwszości liczby, faktoryzacje liczby, liczenie funkcji Eulera, dwumianu newtona, liczenie pola figury, sprawdzanie czy odcinki się przecinają, sprawdzanie czy punkt jest wewnątrz figur i jeszcze wiele innych.
Ogólnie na cp-algorithms jest tak naprawde wszystko czego powinieneś umieć.