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

Kvalifikacijos etapas jau čia pat ir Visma Lietuva Kovo 22 dieną 18:00 valandą organizuoja tiesioginę programavimo sesiją su daugkartiniu turnyro dalyviu Sauliumi Mockumi, kuris padės suprasti į ką reikia atkreipti dėmesį ir kaip spręsti kvalifikacinio etapo užduotis. Taip pat sužinosite kaip prisiregistruoti ir kodėl nereikia tikėti mitais apie turnyrą!

google code jam pasiruošimas

Registruokis dabar ir turėk galimybę laimėti Google Code Jam marškinėlius, bei gauk Google Code Jam Cheat Sheet!

Registruokis

Įdomu tai, kad mūsų kaimynai Baltarusiai jau aštuonis metus iš eilės į namus parsiveža čempionų titulą. Vieną dieną, tai gal būt pavyks padaryti ir mums!

Tačiau dar labai dažnai lietuviai abejoja ar išvis verta dalyvauti tokiame turnyre. Galima išgirsti, kad tai per daug sudėtinga ir sunku, kad užduotis gali išspręsti tik tikri programavimo genijai ir t.t. Neslėpsime, tame yra tiesos, tačiau tai palikime konkurso antram, trečiam ir finaliniam etapams. 

Kvalifikacijos etapą gali praeiti kiekvienas, kuris naudojasi savo loginėmis žiniomis. Nors lietuviai turnyre sutinkami vis dar retai, bet kiekvienais metais dalyvių skaičius iš Lietuvos auga. Todėl galime įrodyti Google’ui ir visam pasauliui, kad Lietuvoje – daug kompetentingų IT inžinierių!

Todėl tikime, kad vieną dieną ir mes pateksime į Google Code Jam turnyro finalą ir nesvarbu, kuriame mieste jis vyktų Los Andžele, Niujorke, Dubline, Toronte, San Franciske ar Miunchene.

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?

Padaryk, tai dabar ir turėk galimybę laimėti Google Code Jam marškinėlius, bei Google Code Jam Cheat Sheet!

Registruokis