Patarimai kaip pasiruošti ir spręsti Google Code Jam užduotis

Google Code Jam Training Session @Visma jau kovo 7 -ą dieną!

Marius Klimantavičius, Visma Lietuva .NET programuotojas ir daugkartinis Google Code Jam dalyvis, dalinasi patarimais kaip pasiruošti konkursui, kas svarbu jau sprendžiant užduotis.

Patarimai pasiruošimui

  1. Spręsti ankstesnes užduotis, pasidaryti šablonus skaitymui rašymui.
  2. Pasiruošti svarbiausius (daugiausiai pastangų reikalaujančius algoritmus), pažiūrėti grafų algoritmus (trumpiausio kelio, max-flow, jungumo ir topologinį rikiavimą).
  3. Gali prireikti didelių skaičių bibliotekos (jei niekas nepasikeitė – C# atveju nepavyks naudotis BigInteger), dažnai užtenka (u)long, kartais reikia modulinės aritmetikos.

Patarimai sprendimui

  1. Kodo grožis nėra labai svarbus.
  2. Pirmuosius testus dažniausiai galima išspręsti paprastai (brute force, greedy, specialūs atvejai…).
  3. Rekomenduojama peržiūrėti visus uždavinius; išimtis – jei perskaitytas uždavinys labai lengvas (dažniausiai pirmasis), tada geriau jį pirma spręsti (bent jau small test case). Beveik visada apie uždavinio sudėtingumą galima spręsti pagal tai, kiek žmonių jį išsprendė.
  4. Jei duoti pavyzdžiai yra labai paprasti – galima spėti, jog egzistuoja paprastas algoritmas.

Dar neužsiregistravai?

Liko dar keletą vietų, tad suskubk ir registruokis EventBrite! Kovo 7-ą Spręsime mūsų sugalvotas ir Google užduotis, kartu ieškosime būdų geriausiai ir efektyviausiai jas spręsti. Pakelkime Lietuvos reitingą šiame prestižiniame konkurse!

P.S. Tik nepamiršk atsinešti kompiuterį.