Kas yra ACM ICPC?

ACM ICPC - kasmetinės studentų komandinės programavimo varžybos, kuriose varžosi komandos iš visų pasaulio universitetų. Komandą sudaro 3 studentai, kurie per 5 valandas turi išspręsti nuo 8 iki 12 uždavinių. Komandai yra skiriamas tik vienas kompiuteris.

Taisyklės

ACM ICPC taisyklės šiek tiek skiriasi nuo mokyklinių olimpiadų:

Žodynėlis

Liaudies išmintis

Literatūra

Informatikos olimpiados: algoritmai ir taikymo pavyzdžiai[1] (nuoroda į knygą) — šią knygą būtina perskaityti dar mokykloje (mokytoja man ją įteikė, kai dešimtoje klasė praėjau mokyklos (ar miesto, dabar neprisimenu) etapą). Puikus įvadas į algoritmo sudėtingumo nustatymą, grafus bei į keletą elementarių, bet fundamentalių algoritmų.

Competitive programming[2] (nuoroda į knygą) — taip pat stipriai rekomenduoju perskaityti. Ši knyga labiau atitinka universitetinio lygio konkursuose sutinkamas užduotis.

topcoder Algorithm Tutorials (nuoroda) — galima rasti algoritmų ir duomenų struktūrų, retai sutinkamų kitoje literatūroje, tačiau labai praverčiančių konkursuose. Pravartu užmesti akį į geometriją, nes čia ji tinkama panaudojimui kompiuteryje (o ne matematikos sąsiuvinyje).

Matematikos knyga[3] (nuoroda į knygą) — nors ir parašyta „Matematikos“, bet tinka ir informatikai. Verta atkreipti dėmesį į skyrius apie modulių aritmetiką (ypač 1.2, 1.3) ir kombinatoriką (3 skyrius). Taip pat geometrijos supratimas nepakenks.

C++ STL (standard template library) (nuoroda į puslapį) — visos standartinės duomenų struktūros jau seniai implementuotos, tereikia mokėti jomis pasinaudoti. Atkreipti dėmesį į vector, list, set ir map klases.

C++ <algorithm> (STL algorithms) (nuoroda į puslapį) — fundamentalūs algoritmai taip pat yra implementuoti. Būtinas įrankis prie STL konteinerių. Mažų mažiausiai reikia mokėti naudotis sort() metodu.

Introduction to Algorithms[4] (nuoroda į knygą) — visiškai pakvaišusiems dėl algoritmų. Kadangi ši knyga yra ne itin orientuota į programavimo konkursus, rekomenduočiau pirmiau atkreipti dėmesį į auksčiau paminėtus šaltinius.


  1. ^ PETRAUSKAS, Linas; SKŪPIENĖ, Jūratė. Informatikos olimpiados: algoritmai ir taikymo pavyzdžiai. Vilnius: Nacionalinė Moksleivių Akademija, 2006. 234 p. ISBN 9955-9894-0-8.
  2. ^ HALIM, Steven; HALIM, Felix. Competitive Programming. Lulu, 2010. 152 p.
  3. ^ JURONIS, Vaidotas, et al. Matematikos knyga. Creative Commons, 2011. 233 p.
  4. ^ CORMEN, Thomas H., et al. Introduction to Algorithms. Cambridge: The MIT Press, 2009. 1312 p. ISBN 0262-0338-4-4.