Ahoana no nahazoako medaly volamena 3 amin'ny 4 tamin'ny Olympiad Computing

Ahoana no nahazoako medaly volamena 3 amin'ny 4 tamin'ny Olympiad Computing

Niomana ho amin'ny Google HashCode World Championship Finals 2017 aho. Ity no fifaninanana lehibe indrindra misy olana algorithm nokarakarain'ny Google.

Nanomboka nianatra C++ hatrany am-boalohany aho tamin'ny kilasy fahasivy. Tsy nahalala na inona na inona momba ny fandaharana, ny algorithm na ny rafitra angona aho. Nisy fotoana nanoratra ny andalana voalohany amin'ny kaody aho. Fito volana taty aoriana, nananontanona ny fifaninanana fandaharana. Te hahita ny fandehan'ny fomba fianarako fandaharana aho. Izany no fahafahana tonga lafatra.

Taorian'ny roa andro nifaninanana dia tonga ny vokatra: nahazo ny medaly volamena aho.

Taitra aho. Nialoha ny mpifaninana manana traikefa 5 taona aho. Fantatro fa niasa mafy aho, saingy nihoatra noho ny nantenaiko rehetra izany zava-bitako izany. Tsapako fa ny fandaharana ara-panatanjahantena no lohahevitro ary nidoboka tamin'izany.

Fantatro izay nitarika ahy ho amin'ny fahombiazana ary tiako ny hizara izany aminareo.

Ahoana no nahazoako medaly volamena 3 amin'ny 4 tamin'ny Olympiad Computing

Nadika tamin'ny fanohanan'ny EDISON Software ny lahatsoratra, izay mikarakara ny fahasalaman'ny mpandrindra sy ny sakafo maraina, ary koa mamorona rindrambaiko manokana.

Izay fiteny fandaharana hofidiana

  • C++ - Tena manoro hevitra! Tena haingana izy. Ny fampiharana ny algorithm dia mitaky fotoana kely noho ny STL. C++ dia ekena amin'ny fifaninanana rehetra. Nanoratra ny andalana voalohany amin'ny kaody ao amin'ny C ++ aho.
  • C - Mianara C++ noho ny STL. Raha fantatrao ny C dia azonao atao koa ny manao programa amin'ny C++.
  • Java dia fiteny fandaharana miadana. Manana kilasy Big Integer izy io, saingy tsy dia hanampy anao loatra. Raha manana fe-potoana ny fifaninanana, miaraka amin'i Java dia azo antoka fa hihoatra izany ianao. Java dia tsy ekena amin'ny fifaninanana rehetra.

Aiza no ahafahanao manao fanazaran-tena

Izaho dia mandrisika Sphere Online Judge (SPOJ). Loharanom-pahombiazana izy io raha jerena ny habetsahana sy ny kalitao. Ny tonian-dahatsoratra sy ny vahaolana dia azo jerena amin'ny Internet raha toa ianao ka mijanona eo amin'ny famahana olana. Ankoatra ity tranokala ity dia manoro hevitra aho SPOJ Toolkit и mpanasokajy olana ho an'ny SPOJ.pl.

Voalohany, mila manatsara ny fahalalanao momba ny fototra ianao

Rehefa zatra ny syntax amin'ny fiteny ianao, dia misy olana tokony ho resena. Atombohy amin'ny olana tsotra izay mitaky fanazaran-tena. Amin'ity dingana ity, ny zava-dehibe dia ny mamaritra ny fomba fandaharanao. Angamba tianao ny manoratra kaody miaraka amin'ny habaka fotsy be dia be, angamba tsy tianao. Azonao atao ny mametraka ny fononteny amin'ny tsipika mitovy amin'ny "raha", na azonao atao ny mametraka azy ireo amin'ny tsipika misaraka.

Mila mitady fomba fandaharana ianao satria fomba ANAO izany.

Rehefa mitady izany ianao dia tadidio fitsipika fototra roa:

  • Tokony ho mora ampiharina ny kaodinao. Tokony hahatsapa ho mahazo aina ianao amin'ny fampiharana ny vahaolana arosonao. Nahoana? Satria mandritra ny fifaninanana, ny zavatra farany tadiavinao dia ny very ao amin'ny kaody. Tsara kokoa foana ny mandany 5 minitra fanampiny hieritreretana ny fomba hanatsorana ny fampiharana ny fehezan-dalàna fa tsy mandany 10 minitra miezaka mamantatra izany.
  • Tokony ho mora vakina ny kaodinao. Rehefa mora vakina ny code dia mora ny debug. Andeha hojerentsika fa misy bibikely mitranga amin'ny fotoana rehetra. Fantatrao ve izany fihetseham-po izany rehefa manana 10 minitra sisa ianao ary tsy hitanao ny fahadisoana mahatsiravina? Mazava ho azy fa manao izany ianao. Mba hisorohana an'io toe-javatra io dia manorata kaody azo vakiana. Raha vao manomboka debugging azy ianao dia toa voajanahary sy mora takarina ny code.

Ity misy ohatra ahy fomba fandaharana.

Ahoana no hanatsarana ny fahaiza-manao fampandrosoana

Fanazaran-tena, fanazaran-tena ary fanazaran-tena bebe kokoa. Manoro hevitra anao aho hiasa amin'ny olana 250 voalohany indrindra azo vahana SPOJ. Vahao izy ireo araka ny filaharany. Mandania adiny iray farafahakeliny hieritreretana ny vahaolana ho an'ny tsirairay amin'izy ireo.

Aza miteny hoe: "Sarotra loatra amiko ity olana ity, hiezaka aho hamaha ny manaraka." Toy izany ny fisainan'ny resy.

Makà taratasy sy pensilihazo. Eritrereto izany. Mety hahita vahaolana ianao, angamba tsy. Farafaharatsiny, hampivelatra fisainana algorithmika ianao. Raha tsy afaka mahita vahaolana ao anatin'ny adiny iray ianao dia tadiavo ny vahaolana efa vita ao amin'ny forum na amin'ny lahatsoratra.

Inona no ho azonao amin'ity fomba fiasa ity? Mianara mampihatra haingana ny hevitrao amin'ny fampiasana kaody. Ary mianatra ny olana sy ny algorithm klasika.

Faharoa, tsy maintsy mahafehy ny algorithm sy ny firafitry ny data ianao

Araho ny fomba fiasa ara-jeografika. Nanomboka nihazakazaka ve ianao nefa tsy nahay nandeha? Tsia. Afaka manangana trano avo tsy misy fototra mafy ve ianao? Tsy indray.

Tsy azonao tsinontsinoavina ny dingana manaraka ny lalan'ny fianarana. Raha tsy miraharaha azy ireo ianao dia ho tavela amin'ny banga fahalalana. Rehefa mandeha ny fotoana dia hiharatsy ihany izy ireo.

Atombohy amin'ny algorithm fototra sy rafitra data

Sarotra ny manomboka. Angamba satria tsy fantatrao izay tokony hianarana aloha. Izany no antony Namorona fampianarana video "Algorithms and Data Structures" aho. Rehefa mamorona ity taranja ity aho dia mifototra amin'ny fomba tiako hampianarina. Tsy nampino ny fanehoan-kevitra! Mpianatra maherin'ny 3000 avy amin'ny firenena 100 mahery no nanao sonia ny taranja tamin'ny volana voalohany.

Raha miasa amin'ny famahana olana mora ianao dia tsy hivoatra mihitsy.

Ny fomba mahomby indrindra hahafantarana izay tsy fantatrao dia ny miaina izany amin'ny fampiharana. Izany no nianarako. Nianatra teknika vaovao maro izay mbola tsy reko hatrizay aho tamin'ny fisafidianana asa sarotra.

Ny olana fahatelo iasanao dia tokony hampianatra anao zava-baovao. Mitandrema kokoa rehefa misafidy olana. Mifidiana olana sarotra kokoa!

Rehefa vitanao ireo olana 250 avy amin'ny SPOJ ireo dia hanana fahatakarana fototra momba ny lohahevitra fototra amin'ny fandaharana ara-panatanjahantena ianao. Miaraka amin'ny fahatakarana lalina ny lojika ao ambadiky ny algorithm fototra, ny algorithm avo lenta dia toa tsy dia sarotra loatra. Amin'izany fomba izany dia azonao ampiasaina betsaka ny fahalalanao.

Halalino lalindalina kokoa ny lohahevitra fototra tsirairay

Ity misy loharano sarobidy miaraka amin'ny fampahalalana be dia be. Ao no hahitanao ny algorithm 10 ambony sy ny rafitra data ho an'ny lohahevitra tsirairay. Taorian'ny olana 250 avy amin'ny SPOJ, dia ho fantatrao betsaka avy amin'ity lisitra ity. Fa ianao koa dia ho tafintohina amin'ny zavatra maro tsy mbola renao hatrizay. Koa manomboka mianatra ireo lohahevitra ireo amin'ny filaharana miakatra.

Raha tsy manamafy ny fahalalanao ianao rehefa avy nianatra zava-baovao, dia ho hadino haingana ny zava-drehetra.
Manoro hevitra aho fa rehefa avy mianatra algorithm vaovao ianao dia ampiasao izany amin'ny fampiharana. Ataovy izany amin'ny alalan'ny asa 2-3. Tadiavo ny marika algorithm ao amin'ny SPOJ. Any ianao dia hahita olana izay mila ity algorithm ity hamahana azy. Alefaso aloha ireo olana ireo.

Master Programming Dynamic satria hitarika anao amin'ny fandresena
Raha ny traikefako dia manana olana iray farafahakeliny ny fifaninanana tsirairay fandaharana mavitrika. Maro ny olona marary an-doha rehefa mandre ilay andian-teny hoe “programming dinamika” satria tsy azony mihitsy izany.

Ary tsara izany. Satria raha azonao ny fandaharana mavitrika dia handresy ianao.

Tiako ny fandaharana dynamic, io no lohahevitra tiako indrindra. Ny tsiambaratelon'ny fandaharana mavitrika dia ny fanaovana safidy tsara indrindra manerantany, fa tsy ny eo an-toerana ihany. Tsy maintsy zarainao ho sub-olana tsotra kokoa ny olana. Indray mandeha ihany no hamaha ny olana tsirairay. Avy eo dia mamorona vahaolana izay manambatra ireo subproblema voavaha. Algorithm mitsiriritra - ny mifanohitra amin'ny fandaharana dynamique. Mitaky fanaovana safidy tsara indrindra eo an-toerana isaky ny dingana izany. Ary ny safidy tsara indrindra eo an-toerana dia mety hitarika amin'ny vahaolana manerantany ratsy.

Rehefa mianatra hevitra vaovao, jereo TopCoder fampianarana. Tena feno tsipiriany sy azo takarina izy ireo. Noho izy ireo dia nahatakatra aho hazo indexed binary.

Miasa mafy

Efa nandre momba ny atleta nandresy tamin'ny Lalao Olaimpika ve ianao nefa tsy nanao fanazaran-tena an-taonany maro? Tsy izaho.

Isan-taona dia nanomboka ny volana septambra ary nifarana tamin'ny volana aprily ny fanomanana ny Olympiad Computer.

Isan'andro nandritra ireo 8 volana ireo dia nanao fanazaran-tena nandritra ny adiny 5 aho.

Ary eny, nandany ireo ora 5 ireo aho tamin'ny famahana olana algorithmika fotsiny. Tsaroako ny andro nanaovako fanazaran-tena nandritra ny adiny 8 ary adiny 10 mihitsy aza. Nahoana? Satria tiako ilay izy. Isan'andro rehefa niverina avy nianatra aho, dia nankany amin'ny efitrano fatoriana, nipetraka teo amin'ny ordinatera ary nanomboka namakafaka olana vaovao. Na nianatra algorithm vaovao tokony ho fantatro aho hamahana ity olana ity.

Raha te handresy ianao dia tsy maintsy manao toy izany koa. Mifidiana olana ary mifikira amin'izany. Eritrereto izany rehefa mandeha mankany amin'ny fivarotana lehibe na eo am-pamiliana.

Ahoana no nahazoako medaly volamena 3 amin'ny 4 tamin'ny Olympiad Computing

Fantatrao ve fa rehefa matory ianao, ny atidohanao dia mamadika ny vaovao voaangona tamin'io andro io? Toa manangom-boky araka ny abidia ao anaty talantalana izy. Amin'ny ankapobeny, ny atidohanao dia mieritreritra ny olana isan-karazany atrehinao.

Azo ampiasaina amim-pahakingana izany. Alohan'ny hatoriana, mamaky olana sarotra ary tadidio izay ilaina hamahana izany. Amin'ity dingana ity dia tsy mila mitady ny vahaolana mihitsy ianao. Andehana matory. Hanomboka hamaha io olana io ny atidohanao. Rehefa mifoha ianao, dia ho gaga rehefa mahatsapa fa nahita ny vahaolana ianao teo am-patoriana.

Andramo ny tenanao. Toy ny majika.

Namorona bilaogy video aho

Ahoana no nahazoako medaly volamena 3 amin'ny 4 tamin'ny Olympiad Computing

Ity fehintsoratra fohy ity dia tsy mifandraika amin'ny fandaharana ara-panatanjahantena. Raha eo amin'ny faha-roapolo taonanao ianao ary manontany tena hoe ahoana no fahitako an'izao tontolo izao, dia mety ho tianao ny hijery ny bilaogiko vidéo ao amin'ny Youtube. Miresaka momba ny tontolo, ny fiainana ary ny siansa momba ny informatika ao aho.

Miasa hendry

Izany no tsiambaratelon'ny fahombiazana. Mila tanjona ianao.

Olona isika ary tia azy mangataka andro. Tianay foana ny hanemotra ny tokony hatao amin'izao fotoana izao. Ny fijerena Netflix dia mahafinaritra kokoa noho ny miatrika olana amin'ny fandaharana mavitrika. Fantatrao izany ary mila manamboatra izany ianao.

Ahoana ny fomba handresena ny fanemorana

Mametraha tanjona. Hahita olana mahaliana foana ianao izay ahafahanao mianatra zava-baovao (jereo ireo loharano voalazako etsy ambony). Mila vahana anefa ireo olana ireo fa tsy vakiana fotsiny.

Ka izao no fomba nandreseko ny fanemorana. Nanomboka kalandrie taratasy aho ary nofenoiko isan'andro ireo olana tiako hovahana. Nofenoiko foana ny olana roa andro mialoha. Haiko àry ny nitantana ny fotoanako tamin’ny andro manaraka.

Ahoana no nahazoako medaly volamena 3 amin'ny 4 tamin'ny Olympiad Computing

Nazoto foana àry aho. Nila namaha olana vitsivitsy aho ary nitady vaovao hamenoana ny andro manaraka ao amin'ny kalandrie. Mahatsapa tsara ny fiampitana ireo olana voavaha. Fantatro fa tianao koa izany.

Makà kalandrie taratasy ho anao manokana. Aza mamorona lisitra hafa tokony hatao amin'ny findainao izay hohadinoinao rahampitso.

Ahoana ny fomba debug mahomby

Te ho matihanina ve ianao? Raha eny, dia mila "debug izany ao an-tsainao."
Ity no teknika debugging mahomby indrindra fantatro satria tsy mila debugger mihitsy. Ny atidohanao dia mandinika sampana kaody maromaro indray mandeha ary manome anao fijery mivelatra kokoa momba ny kaody raha oharina amin'ny klasika debugger.

Azonao atao ny mampitaha ny tenanao amin'ny grandmaster iray izay milalao echec ary mieritreritra 3 mandroso.

Mampiasa an'io teknika io aho ho fiarovana voalohany. Avy eo dia mampiasa debugger tena izy aho.

Mba hianarana ny fomba debug ao an-dohanao dia mila manao fanazaran-tena ianao. Rehefa manamarina vahaolana amin'ny olana ianao ary mahazo "valiny diso", aza mandeha mivantana amin'ny bokotra debugger. Avereno vakiana ny kaody ary eritrereto hoe: "Inona no mitranga amin'ity andalana ity?", "Ahoana no fiantraikan'ny "raha" eto amin'ny programa?", "Rehefa miala amin'ny loop isika, inona ny sandan'ny mpizara?"

Amin'izany fomba izany dia mieritreritra ny tenanao manokana ianao. Rehefa mandeha ny fotoana, dia hianatra hanoratra kaody sy debug izany amin'ny lalitra.

Momba ny mpanoratra

Ahoana no nahazoako medaly volamena 3 amin'ny 4 tamin'ny Olympiad Computing
Andrei Margeloiu dia programmer mazoto manana fahalianana amin'ny fandraharahana, fanombohana ary any ivelany. Afaka mifandray aminy ianao ao amin'ny LinkedIn.

Dikanteny: Diana Sheremyeva

Source: www.habr.com

Add a comment