Vještina na kojoj će se polaznike upoznati s primjenom algoritama u rješavanju složenih problema. Cilj vještine je predstaviti polaznicima primjenu već naučenih algoritama na složenije probleme i područja na kojima njihova primjena nije nimalo očita, a ponekad ni intuitivna.
Materijali ►Upoznajte se s predavačima natjecateljskog programiranja i strukturom kolegija. Nakon upoznavanja slijedi kratak uvod u C++ i podsjećanje osnovnih algoritama.
Materijali ►Korištenje i način rada funkcija za sortiranje integriranih u programski jezik te binarno pretraživanje rješenja.
Materijali ►Upoznat ćemo te s metodama backtrackinga, pruninga, meet in the middle te pohlepnih rješenja problema.
Materijali ►Naučit ćemo te koncept dinamičkog programiranja, te objasniti ti kako se računa složenost uz istovremeni oprez na količinu korištene memorije.
Materijali ►Upoznat ćeš sljedeće algoritme: prefix sum, difference array, sparse table, fenwick, kompresija indexa.
Materijali ►Naučit ćeš implementirati segmentno stablo te offline algoritme uz mnoge primjere primjene naučenog.
Materijali ►Upoznat ćeš načine zapisa grafa u memoriju, najkraće puteve, strukturu union find (koja se koristi u algoritmu MST) te detekciju ciklusa.
Materijali ►Upoznat ćemo te s teorijom igara, teorijom brojeva te linearnim sustavima koje rješavamo matricama.
Materijali ►