Kuhwina kwandakaita menduru dzegoridhe nhatu kubva pa3 paComputing Olympiad

Kuhwina kwandakaita menduru dzegoridhe nhatu kubva pa3 paComputing Olympiad

Ndakanga ndichigadzirira Google HashCode World Championship Finals 2017. Iyi ndiyo makwikwi makuru ane algorithmic matambudziko akarongwa neGoogle.

Ndakatanga kudzidza C++ kubva mukutanga mugiredhi rechipfumbamwe. Ini hapana chandaiziva nezve programming, algorithms kana data zvimiro. Pane imwe nguva ndakanyora mutsara wangu wekutanga wekodhi. Mwedzi minomwe gare gare, makwikwi epurogiramu akaswedera pedyo. Ini ndaida kuona kuti maitiro angu ekudzidza programming akashanda sei. Waive mukana wakakwana.

Mushure memazuva maviri emakwikwi, zvakabuda: Ndakahwina menduru yegoridhe.

Ndakarohwa nehana. Ndakanga ndiri pamberi pevakwikwidzi vane 5 makore echiitiko. Ndaiziva kuti ndakanga ndashanda nesimba, asi kubudirira uku kwakapfuura zvose zvandaitarisira. Ndakaona kuti sports programming ndiyo yaiva nyaya yangu ndichibva ndangopindawo mumusoro.

Ndinoziva chakaita kuti ndibudirire uye ndinoda kugovana newe.

Kuhwina kwandakaita menduru dzegoridhe nhatu kubva pa3 paComputing Olympiad

Chinyorwa chakaturikirwa nerutsigiro rweEDISON Software, iyo inotarisira hutano hwevagadziri uye kudya kwavo kwemangwanani, pamwe chete inogadzira tsika software.

Ndeupi mutauro wechirongwa chekusarudza

  • C++ - Zvinokurudzira! Anokurumidza zvikuru. Kuitwa kwealgorithms kunotora nguva shoma nekuda kweSTL. C ++ inogamuchirwa mumakwikwi ese. Ndakanyora mutsara wangu wekutanga wekodhi muC ++.
  • C - Dzidza C ++ nekuda kweSTL. Kana iwe uchiziva C, unogona zvakare kuronga muC ++.
  • Java mutauro unononoka kuronga. Iyo ine Big Integer kirasi, asi haizokubatsira zvakanyanya. Kana makwikwi ane nguva yakatarwa, neJava iwe zvechokwadi uchaipfuura. Java haigamuchirwi pamakwikwi ese.

Kwaungadzidzire

Ndinokurudzira Sphere Online Mutongi (SPOJ). Icho chinhu chinoshanda chinoshandiswa maererano nehuwandu uye hutano. Vapepeti uye zvigadziriso zviripo online kana iwe ukanamatira mukugadzirisa matambudziko. Mukuwedzera kune ino saiti ndinokurudzira SPOJ Toolkit ΠΈ dambudziko classifier yeSPOJ.pl.

Kutanga, iwe unofanirwa kukwenenzvera ruzivo rwako rwezvakakosha

Kana wangojaira maumbirwo emutauro, pane mamwe matambudziko ekukunda. Tanga nezvinetso zviri nyore zvinoda kudzidzira. Panguva ino, chinhu chikuru ndechekuona maitiro ako ekuronga. Pamwe iwe unofarira kunyora kodhi ine yakawanda yewhitespace, pamwe hauite. Unogona kunge uri kuisa maparentheses pamutsetse wakafanana newokuti β€œkana”, kana kuti uri kuaisa pamitsetse yakasiyana.

Iwe unofanirwa kuwana yako programming maitiro nekuti ndiyo YAKO maitiro.

Paunenge uchitsvaga, yeuka nheyo mbiri dzinokosha:

  • Kodhi yako inofanira kuva nyore kushandisa. Iwe unofanirwa kunzwa wakasununguka kushandisa mhinduro yaunouya nayo. Sei? Nekuti panguva yemakwikwi, chinhu chekupedzisira chaunoda kurasika mukodhi yako. Zvinogara zviri nani kushandisa mamwe maminetsi mashanu uchifunga nezvekurerutsa kuita kwekodhi pane kushandisa maminetsi gumi uchiedza kuzvifunga.
  • Kodhi yako inofanira kuve nyore kuverenga. Kana kodhi iri nyore kuverenga, zviri nyore kugadzirisa. Ngationei kuti tsikidzi dzinoitika nguva dzose. Iwe unoziva kunzwa ikoko kana iwe uine 10 maminetsi asara uye iwe usingakwanise kuwana iyo yakashata kukanganisa? Chokwadi unoita. Kuti udzivise mamiriro ezvinhu aya, nyora kodhi inoverengwa. Kana ukangotanga kuigadzirisa, iyo kodhi ichaita seyakasikwa uye iri nyore kunzwisisa.

Heino muenzaniso wangu programming style.

Maitiro Ekuvandudza Unyanzvi Hwako hweKuvandudza

Dzidzira, dzidzira uye zvimwe kudzidzira. Ini ndinokurudzira kuti ushande kuburikidza ne250 ekutanga matambudziko anogadziriswa paari SPOJ. Vagadzirise zvakarongeka. Pedza ingangoita awa uchifunga nezvemhinduro kune mumwe nemumwe wavo.

Usati: "Dambudziko iri rakanyanya kuoma kwandiri, ndichaedza kugadzirisa rinotevera." Aya ndiwo mafungire anoita vakarasika.

Tora bepa nepenzura. Funga nezvazvo. Zvimwe unogona kuwana mhinduro, pamwe kwete. Pazvishoma, iwe unokudziridza algorithmic kufunga. Kana iwe usingakwanise kuuya nemhinduro mukati meawa, tsvaga mhinduro yakagadzirira paforamu kana muzvinyorwa.

Chii chauchawana nemaitiro aya? Dzidza kukurumidza kuita mazano ako uchishandisa kodhi. Uye dzidza matambudziko echinyakare uye algorithms.

Chechipiri, iwe unofanirwa kugona algorithms uye data zvimiro

Tevera nzira ye hierarchical. Watanga kumhanya usingazive kufamba? Aihwa. Unogona kuvaka skyscraper isina hwaro hwakasimba? Kwete zvakare.

Iwe haugone kufuratira matanho ari munzira yekudzidza. Kana ukasavafuratira, unosara wava nemapani eruzivo. Nekufamba kwenguva vanozongowedzera kuipa.

Tanga neakakosha algorithms uye data zvimiro

Zvakaoma kutanga. Zvichida nokuti hauzivi zvokutanga kudzidza. Ndosaka Ini ndakagadzira vhidhiyo kosi "Algorithms uye Dhata Zvimiro". Pakugadzira kosi iyi, ndakaiisa panzira yandaida kudzidziswa nayo. Kuita kwacho kwaishamisa! Vadzidzi vanopfuura zviuru zvitatu vanobva kunyika dzinopfuura zana vakasaina kosi iyi mumwedzi wekutanga.

Kana ukashanda pakugadzirisa matambudziko ari nyore, haufe wakavandudza.

Nzira inonyanya kushanda yekunzwisisa zvausingazive ndeyekusangana nazvo mukuita. Ndokudzidza kwandakaita. Ndakadzidza nzira itsva dzakawanda dzandakanga ndisati ndambonzwa nekusarudza basa rakaoma.

Dambudziko rega rechitatu raunoshanda pariri rinofanira kukudzidzisa chimwe chinhu chitsva. Ngwarira zvakanyanya pakusarudza matambudziko. Sarudza mamwe matambudziko akaoma!

Kana uchinge wapedza aya mazana maviri nemakumi mashanu matambudziko kubva kuSPOJ, iwe unenge uine nzwisiso yekutanga yemisimboti misoro yemitambo hurongwa. Nekunzwisisa kwakadzama kweiyo logic kuseri kwekutanga algorithms, yakakwirira-level algorithms ichaita seyakaomesesa. Nenzira iyi unogona kushandisa zvakanyanya ruzivo rwako.

Dira zvakadzama mune rimwe nerimwe remadingindira makuru

Heino pfuma yakakosha neruzivo rwakawanda. Ikoko iwe unowana epamusoro gumi algorithms uye data zvimiro zvechinyorwa chimwe nechimwe. Mushure mematambudziko mazana maviri nemakumi mashanu kubva kuSPOJ, iwe unozoziva zvakawanda kubva pane iyi runyorwa. Asi uchagumburwawo pazvinhu zvizhinji zvausina kumbonzwa. Saka tanga kudzidza nyaya idzi uchikwira.

Kana iwe ukasasimbisa ruzivo rwako mushure mekudzidza chimwe chinhu chitsva, iwe uchakurumidza kukanganwa zvese.
Ini ndinokurudzira kuti mushure mekunge madzidza algorithm nyowani, shandisa mukuita. Ishande kuburikidza ne2-3 mabasa. Tarisa iyo algorithm tag muSPOJ. Ikoko iwe unowana matambudziko anoda iyi algorithm kugadzirisa. Tanga wagadzirisa nyaya idzi.

Master Dynamic Programming Nekuti Inotungamira Iwe Kukunda
Kubva pane zvakaitika kwandiri, makwikwi ese ane dambudziko rimwechete dynamic programming. Vanhu vazhinji vanotemwa nemusoro pavanonzwa mutsara wekuti β€œdynamic programming” nekuti havatombounzwisisi.

Uye izvi zvakanaka. Nekuti kana iwe uchinzwisisa dynamic programming, ipapo iwe uchahwina.

Ini ndinoda dynamic programming, ndiyo yandinofarira musoro wenyaya. Chakavanzika chekugadzirisa zvirongwa ndechekuita sarudzo dzepasi rose, kwete dzemuno chete. Iwe unofanirwa kuputsa dambudziko pasi kuita akareruka madiki-matambudziko. Gadzirisa rimwe nerimwe rematambudziko aya kamwe chete. Wobva wagadzira mhinduro inosanganisa akagadziriswa subproblems. Kukara algorithm - iyo inopesana neiyo dynamic programming. Zvinoda kuita sarudzo dzemuno padanho rega rega. Uye sarudzo yemunharaunda yakanaka inogona kutungamira kune yakaipa mhinduro yepasirese.

Paunenge uchidzidza pfungwa itsva, tarisa TopCoder tutorials. Iwo akadzama uye anonzwisisika. Ndatenda kwavari ndakakwanisa kunzwisisa binary indexed miti.

Shanda nesimba

Wakambonzwa nezvevatambi vanohwina maOlympics vasina makore ekudzidzira? Ini kwete.

Gore rega rega, gadziriro dzeComputer Olympiad dzakatanga munaGunyana uye dzakapera muna Kubvumbi.

Zuva nezuva kwemwedzi misere iyi ndakadzidzira kwemaawa mashanu.

Uye hongu, ndakapedza awa 5 maawa chete kugadzirisa algorithmic matambudziko. Ndinoyeuka mazuva andaidzidzira kwe8 uye kunyange maawa gumi. Sei? Nokuti ndakazvifarira. Zuva nezuva pandaidzoka kubva kuchikoro, ndakananga muimba yokurara, ndikagara pakombiyuta ndokutanga kuongorora dambudziko idzva. Kana kuti ndanga ndichidzidza algorithm nyowani yandaifanira kuziva kugadzirisa dambudziko iri.

Kana uchida kuhwina unofanira kuita zvimwe chetezvo. Sarudza dambudziko uye unamatira pariri. Funga nezvazvo uchifamba kuenda kuchitoro kana uchityaira.

Kuhwina kwandakaita menduru dzegoridhe nhatu kubva pa3 paComputing Olympiad

Unoziva here kuti paunorara, uropi hwako hunokanganisa ruzivo rwakaunganidzwa musi iwoyo? Anenge ari kurongedza mabhuku musherufu yearufabheti. Chaizvoizvo, uropi hwako hunofunga nezvematambudziko akasiyana auri kutarisana nawo.

Izvi zvinogona kushandiswa nounyanzvi. Usati waenda kunorara, verenga dambudziko rakaoma uye yeuka zvinotora kuti rigadzirise. Panguva ino, haufanire kutsvaga mhinduro pachayo. Enda kunorara. Uropi hwako hunozotanga kugadzirisa dambudziko iri. Paunomuka unozoshamisika kuona kuti wawana mushonga wakarara.

Edza iwe pachako. Zvakafanana nemashiripiti.

Ndakagadzira vhidhiyo blog

Kuhwina kwandakaita menduru dzegoridhe nhatu kubva pa3 paComputing Olympiad

Iyi ndima pfupi haina hukama nehurongwa hwemitambo. Kana iwe uri mumakore ako makumi maviri uye uchinetseka kuti ndinoona sei nyika, ungada kutarisa yangu vhidhiyo blog paYouTube. Ndinotaura nezvenyika, hupenyu uye sainzi yekombuta mairi.

Shanda wakachenjera

Ichi ndicho chakavanzika chekubudirira. Unoda zvinangwa.

Isu tiri vanhu uye tinozvifarira verengera. Isu tinogara tichida kuverengera izvo zvinoda kuitwa izvozvi. Kuona Netflix kunogara kuchinakidza pane kubata neane simba programming matambudziko. Iwe unozviziva izvi uye unofanirwa kuzvigadzirisa.

Kukunda kuverengera

Zvimisire zvinangwa. Iwe unogara uchiwana anonakidza matambudziko kubva kwaunogona kudzidza chimwe chinhu chitsva (tarisa zviwanikwa zvandataura pamusoro). Asi matambudziko aya anofanira kugadziriswa, kwete kungoverenga nezvazvo.

Saka ndozvinoita kuti ndikunde kuverengera. Ndakatanga karenda yemapepa ndokuzadza zuva rimwe nerimwe nezvinetso zvandaida kugadzirisa. Ndaigara ndichizadza matambudziko pachine mazuva maviri. Saka ndaiziva kuronga nguva yangu mumazuva aitevera.

Kuhwina kwandakaita menduru dzegoridhe nhatu kubva pa3 paComputing Olympiad

Saka ndaigara ndichikurudzirwa. Ndaifanira kugadzirisa mamwe matambudziko uye kutsvaga matsva ekuzadza mazuva aitevera pakarenda. Kubvisa matambudziko akagadziriswa kunonzwa kwakanaka. Ndinoziva kuti unozvifarirawo.

Tora karenda yako yepepa. Usagadzire imwe rondedzero pafoni yako yauchazokanganwa nezvayo mangwana.

Magadzirisirwo ezvinobudirira

Unoda kuve nyanzvi here? Kana hongu, saka unofanirwa "kuzvigadzirisa mupfungwa dzako."
Iyi ndiyo nzira inoshanda kwazvo yekubvisa bhaibheri yandinoziva nekuti haidi debugger zvachose. Uropi hwako hunoongorora matavi mazhinji ekodhi kamwechete uye inokupa yakawedzera kutarisisa kwekodhi kana ichienzaniswa classic debugger.

Unogona kuzvienzanisa nasekuru vanotamba chess uye vanofunga 3 inoenda kumberi.

Ini ndinoshandisa nzira iyi senzira yangu yekutanga yekudzivirira. Ndobva ndashandisa debugger chaiyo.

Kuti udzidze kugadzirisa mumusoro wako, unofanirwa kudzidzira. Paunosimbisa mhinduro kudambudziko uye wowana "mhinduro isiriyo", usaende zvakananga kubhatani rekugadzirisa. Verengazve kodhi uye funga: "Chii chiri kuitika mumutsara uyu?", "Ko" kana" pano inokanganisa chirongwa sei?", "Kana tabuda muchiuno, kukosha kweiyo iterator kwakadii?"

Nenzira iyi unofunga iwe pachako. Nekufamba kwenguva, iwe unozodzidza kunyora kodhi uye kuigadzirisa pakubhururuka.

Nezvomunyori

Kuhwina kwandakaita menduru dzegoridhe nhatu kubva pa3 paComputing Olympiad
Andrei Margeloiu anofarira programmer ane chido mune zvebhizimusi, kutanga, uye kunze. Unogona kumubata pa LinkedIn.

Shanduro: Diana Sheremyeva

Source: www.habr.com

Voeg