Indlela endiphumelele ngayo iimbasa zegolide ezi-3 kwezi-4 kwiOlimpiyadi yeKhompyutha

Indlela endiphumelele ngayo iimbasa zegolide ezi-3 kwezi-4 kwiOlimpiyadi yeKhompyutha

Ndandilungiselela i-Google HashCode World Championship Finals 2017. Olu lukhuphiswano lukhulu kunye neengxaki ze-algorithmic ezihlelwe yiGoogle.

Ndaqala ukufunda iC++ ukusuka ekuqaleni kwibanga lesithoba. Ndandingazi nto malunga neprogram, i-algorithms okanye izakhiwo zedatha. Ngexesha elithile ndabhala umgca wam wokuqala wekhowudi. Kwiinyanga ezisixhenxe kamva, ukhuphiswano lwenkqubo lwalusemnyango. Bendifuna ukubona ukuba isimbo sam sokufunda sisebenza kakuhle kangakanani na. Yayilithuba elifanelekileyo.

Emva kweentsuku ezimbini zokhuphiswano, zafika iziphumo: Ndiphumelele imbasa yegolide.

Ndothuka. Ndandiphambi kwabakhuphisana nabaneminyaka eyi-5 yamava. Ndandisazi ukuba ndisebenze nzima, kodwa le mpumelelo yayingaphaya kwayo yonke into endandiyilindele. Ndabona ukuba inkqubo yezemidlalo yayiyisihloko sam kwaye ndangena kuyo ngokukhawuleza.

Ndiyayazi into eyandikhokelela empumelelweni kwaye ndifuna ukwabelana nawe ngayo.

Indlela endiphumelele ngayo iimbasa zegolide ezi-3 kwezi-4 kwiOlimpiyadi yeKhompyutha

Eli nqaku liguqulelwe ngenkxaso ye-EDISON Software, leyo ikhathalela impilo yabacwangcisi kunye nesidlo sakusasa sabo, kwakunye iphuhlisa inkqubo yesoftware.

Loluphi ulwimi lokuprograma olunokukhetha

  • C++ - Ndincoma kakhulu! Ukhawuleza kakhulu. Ukuphunyezwa kwe-algorithms kuthatha ixesha elincinci ngenxa ye-STL. I-C++ yamkelwe kulo lonke ukhuphiswano. Ndibhale umgca wam wokuqala wekhowudi kwi-C ++.
  • C - Funda i-C ++ ngenxa ye-STL. Ukuba uyazi uC, unokuphinda udwelise inkqubo kwiC++.
  • IJava lulwimi lwenkqubo olucothayo. Ineklasi yeBig Integer, kodwa ayizukukunceda kakhulu. Ukuba ukhuphiswano lunomda wexesha, ngeJava ngokuqinisekileyo uya kuludlula. IJava ayamkelwa kulo lonke ukhuphiswano.

Ungaqhelisela phi

Ndicebisa Ijaji ye-Intanethi yeSphere (SPOJ). Sisixhobo esisebenzayo ngokobungakanani kunye nomgangatho. Abahleli kunye nezisombululo ziyafumaneka kwi-intanethi ukuba ubambekile kwinkqubo yokusombulula iingxaki. Ukongeza kule sayithi ndincoma SPOJ Toolkit и umhleli wengxaki we-SPOJ.pl.

Okokuqala, kufuneka uphucule ulwazi lwakho lweziseko

Nje ukuba uqhelane nesintaksi solwimi, kukho iingxaki ekufuneka zoyiswe. Qala ngeengxaki ezilula ezifuna ukuziqhelanisa. Kweli nqanaba, into ephambili kukumisela isitayile sakho senkqubo. Mhlawumbi uyathanda ukubhala ikhowudi enendawo emhlophe eninzi, mhlawumbi awukwenzi. Usenokuba ubeka izibiyeli kumgca omnye othi “ukuba”, okanye uzibeka kwimigca eyahlukeneyo.

Kuya kufuneka ufumane isitayile sakho senkqubo kuba sisitayile SAKHO.

Xa uyikhangela, khumbula imigaqo emibini esisiseko:

  • Ikhowudi yakho kufuneka kube lula ukuyiphumeza. Kuya kufuneka uzive ukhululekile ukuphumeza isisombululo oza naso. Ngoba? Kuba ngexesha lokhuphiswano, into yokugqibela oyifunayo kukulahleka kwikhowudi yakho. Kuhlala kungcono ukuchitha imizuzu emi-5 eyongezelelweyo ucinga malunga nendlela yokwenza lula ukuphunyezwa kwekhowudi kunokuchitha imizuzu eyi-10 uzama ukuyiqonda.
  • Ikhowudi yakho kufuneka kube lula ukuyifunda. Xa ikhowudi ifundeka lula, kulula ukuyilungisa. Masivume—iincukuthu ziyenzeka ngalo lonke ixesha. Uyayazi loo mvakalelo xa unemizuzu eyi-10 kwaye awukwazi ukufumana impazamo enkulu? Ewe kunjalo. Ukunqanda le meko, bhala ikhowudi efundekayo. Nje ukuba uqale ukuyilungisa, ikhowudi iya kubonakala yendalo kwaye kulula ukuyiqonda.

Nanku umzekelo wam isitayile sokucwangcisa.

UngaPhucula njani iZakhono zakho zoPhuhliso

Ziqhelise, uzilolonge kwaye uziqhelanise ngakumbi. Ndincoma ukuba usebenze ngezona ngxaki zokuqala ezingama-250 ezinokusonjululwa I-SPOJ. Zisombulule ngokulandelelana. Chitha ubuncinane iyure ucinga ngesisombululo kuye ngamnye wabo.

Musa ukuthi: "Le ngxaki inzima kakhulu kum, ndiya kuzama ukusombulula enye." Le yindlela abacinga ngayo abalahlekileyo.

Thatha isiqwenga sephepha kunye nepensile. Ycinge. Mhlawumbi ungasifumana isisombululo, mhlawumbi akunjalo. Ubuncinci, uya kuphuhlisa ukucinga kwe-algorithmic. Ukuba awukwazi ukuza nesisombululo kwisithuba seyure, khangela isisombululo esele senziwe kwiforum okanye kumanqaku.

Uya kuzuza ntoni ngale ndlela? Funda ukuphumeza ngokukhawuleza iingcamango zakho usebenzisa ikhowudi. Kwaye ufunde iingxaki zeklasi kunye ne-algorithms.

Okwesibini, kuya kufuneka wazi i-algorithms kunye nezakhiwo zedatha

Landela indlela yoluhlu lwemigangatho. Ngaba uqalile ukubaleka ungazi ukuba uhambe njani? Hayi. Ngaba unokwakha i-skyscraper ngaphandle kwesiseko esiqinileyo? Hayi kwakhona.

Awunako ukuwahoya amanyathelo kwindlela yokufunda. Ukuba awubahoyi, uya kusala nezithuba zolwazi. Ekuhambeni kwexesha ziya kuba mbi ngakumbi.

Qala nge-algorithms esisiseko kunye nezakhiwo zedatha

Kunzima ukuqalisa. Mhlawumbi kungenxa yokuba awuyazi into omawuyifunde kuqala. Kunjalo ngoba Ndenze ikhosi yevidiyo "iAlgorithms kunye noLwakhiwo lweDatha". Xa ndidala le khosi, ndiyisekele kwindlela endifuna ukufundiswa ngayo. Indlela abasabela ngayo yayingakholeleki! Bangaphezu kwama-3000 abafundi abavela kumazwe angaphezu kwe-100 ababhalisele le khosi kwinyanga yokuqala.

Ukuba usebenza ekusombululeni iingxaki ezilula, awusoze uphucule.

Eyona ndlela isebenzayo yokuqonda into ongayaziyo kukuba ube namava okusebenza. Ndafunda ngolo hlobo. Ndafunda iindlela ezininzi ezintsha endingazange ndeva ngazo ngaphambili ngokukhetha umsebenzi onzima.

Ingxaki nganye yesithathu osebenza kuyo kufuneka ikufundise into entsha. Lumka ngakumbi xa ukhetha iingxaki. Khetha iingxaki ezinzima ngakumbi!

Nje ukuba ugqibezele ezi ngxaki zingama-250 zivela kwi-SPOJ, uya kuba nokuqonda okusisiseko kwizihloko eziphambili zenkqubo yezemidlalo. Ngokuqonda okunzulu kwengqiqo emva kwe-algorithms esisiseko, i-algorithms yezinga eliphezulu iya kubonakala inzima kakhulu. Ngale ndlela unokwenza uninzi lolwazi lwakho.

Yemba nzulu kumxholo ngamnye ophambili

Nasi isibonelelo esixabisekileyo ngolwazi oluninzi. Apho uya kufumana i-algorithms ye-10 ephezulu kunye nezakhiwo zedatha kwisihloko ngasinye. Emva kwe-250 yeengxaki ezivela kwi-SPOJ, uya kukwazi okuninzi kolu luhlu. Kananjalo uya kukhubeka kwizinto ezininzi ongazange uve ngazo ngaphambili. Ngoko qala ukufunda ezi zihloko ngokwenyuka ngolandelelwano.

Ukuba awuqinisi ulwazi lwakho emva kokufunda into entsha, uya kulibala ngokukhawuleza yonke into.
Ndincoma ukuba emva kokuba ufunde i-algorithm entsha, uyisebenzise ekusebenzeni. Yisebenze ngemisebenzi emi-2-3. Khangela ithegi ye-algorithm kwi-SPOJ. Apho uya kufumana iingxaki ezifuna le algorithm ukusombulula. Sombulula le miba kuqala.

Master Dynamic Programming kuba iya kukukhokelela kuloyiso
Ngokusuka kumava am, lonke ukhuphiswano lunengxaki enye ubuncinane inkqubo eguqukayo. Abantu abaninzi baphathwa yintloko xa besiva ibinzana elithi “dynamic programming” kuba abaliqondi kwaphela.

Kwaye oku kulungile. Kuba ukuba uyayiqonda inkqubo eguqukayo, ngoko uya kuphumelela.

Ndiyayithanda inkqubo eguqukayo, sisihloko endisithandayo. Imfihlo yenkqubo eguquguqukayo kukwenza ukhetho lwehlabathi jikelele, hayi olwasekhaya kuphela. Kufuneka uhlukanise ingxaki ibe yingxaki ezincinci ezilula. Sombulula nganye kwezi ngxaki kube kanye kuphela. Emva koko yenza isisombululo esidibanisa iingxaki ezincinci ezisonjululwe. I-algorithm yokubawa - isichasi senkqubo eguqukayo. Ifuna ukwenza ukhetho olufanelekileyo ekuhlaleni kwinqanaba ngalinye. Kwaye ukhetho olufanelekileyo lwasekhaya lunokukhokelela kwisisombululo esibi sehlabathi.

Ngelixa ufunda iikhonsepthi ezintsha, jonga TopCoder tutorials. Zineenkcukacha kakhulu kwaye ziyaqondakala. Ngenxa yabo ndiye ndakwazi ukuqonda imithi enesalathisi yokubini.

Sebenza nzima

Ngaba ukhe weva ngeembaleki eziphumelele iiOlimpiki ngaphandle kweminyaka yokuzilolonga? Mna hayi.

Rhoqo ngonyaka, amalungiselelo eComputer Olympiad aqala ngoSeptemba kwaye aphela ngo-Epreli.

Yonke imihla kwezi nyanga zi-8 ndandizilolonge iiyure ezi-5.

Kwaye ewe, ndichithe ezi 5 iiyure kuphela ukusombulula iingxaki algorithmic. Ndikhumbula iintsuku endandiziqhelanisa ne-8 kunye neeyure ezili-10. Ngoba? Kuba ndandiyithanda. Yonke imihla xa ndibuya esikolweni, ndandisiya ngqo kwigumbi lokulala, ndihlale ekhompyutheni ndize ndiqalise ukuhlalutya ingxaki entsha. Okanye bendifunda i-algorithm entsha ekufuneka ndiyazi ukusombulula le ngxaki.

Ukuba ufuna ukuphumelela, kufuneka wenze okufanayo. Khetha ingxaki kwaye unamathele kuyo. Cinga ngako ngelixa uhamba ukuya evenkileni okanye ngelixa uqhuba.

Indlela endiphumelele ngayo iimbasa zegolide ezi-3 kwezi-4 kwiOlimpiyadi yeKhompyutha

Ngaba ubusazi ukuba xa ulele, ingqondo yakho ichitha ulwazi oluqokelelwe ngaloo mini? Ubonakala eqokelela iincwadi ngokulandelelana kwealfabhethi eshelufini. Ngokusisiseko, ingqondo yakho icinga ngeengxaki ezahlukeneyo ojongene nazo.

Oku kunokusetyenziswa ngobuchule. Ngaphambi kokulala, funda ingxaki enzima kwaye ukhumbule oko kuthatha ukuyisombulula. Kweli nqanaba, akukho mfuneko yokuba ujonge isisombululo ngokwaso. Hambo lala. Ingqondo yakho iya kuqala ukulungisa le ngxaki. Xa uvuka, uya kumangaliswa kukuqonda ukuba usifumene isisombululo ngoxa ulele.

Yizame ngokwakho. Kufana nomlingo.

Ndenze ibhlog yevidiyo

Indlela endiphumelele ngayo iimbasa zegolide ezi-3 kwezi-4 kwiOlimpiyadi yeKhompyutha

Lo mhlathi umfutshane awuhambelani nenkqubo yezemidlalo. Ukuba ukwiminyaka yamashumi amabini kwaye uyazibuza ukuba ndiwubona njani umhlaba, unokufuna ukujonga ividiyo yam blog kwi Youtube. Ndithetha ngehlabathi, ubomi kunye nesayensi yekhompyutha kulo.

Sebenza ngobulumko

Le yimfihlelo yempumelelo. Kufuneka usukelo.

Singabantu kwaye siyayithanda zibeke amangomso. Sisoloko sifuna ukubekela ecaleni oko kufuneka kwenziwe ngoku. Ukubukela iNetflix kuhlala kuyonwabisa ngakumbi kunokujongana neengxaki zenkqubo eguqukayo. Uyayazi le nto kwaye kufuneka uyilungise.

Indlela yokoyisa ukuzibekela amangomso izinto

Zibekele usukelo. Uya kuhlala ufumana iingxaki ezinomdla apho unokufunda khona into entsha (jonga izibonelelo endizikhankanyileyo ngasentla). Kodwa ezi ngxaki zifuna ukusonjululwa, kungekuphela nje ukufunda ngazo.

Nantsi ke indlela endakoyisa ngayo ukuzibekela amangomso izinto. Ndaqalisa ikhalenda yephepha ndaza ndazalisa suku ngalunye ngeengxaki endandifuna ukuzicombulula. Ndandisoloko ndizalisa iingxaki kwiintsuku ezimbini kusengaphambili. Ngoko ndandiyazi indlela yokulawula ixesha lam kwiintsuku ezilandelayo.

Indlela endiphumelele ngayo iimbasa zegolide ezi-3 kwezi-4 kwiOlimpiyadi yeKhompyutha

Ngoko ndandisoloko ndikhuthazekile. Kwakufuneka ndicombulule iingxaki ezithile ndize ndifumane ezintsha ukuze ndizalise iintsuku ezilandelayo kwikhalenda. Ukuyeka iingxaki ezisonjululweyo kuvakala kukuhle. Ndiyazi ukuba nawe uyayithanda.

Zifumanele eyakho ikhalenda yephepha. Musa ukwenza olunye uluhlu lwezinto oza kuzenza kwifowuni yakho oya kukulibala ngomso.

Uyilungisa njani impazamo ngokufanelekileyo

Ngaba uyafuna ukuba yincutshe? Ukuba ewe, kuya kufuneka "uyilungise engqondweni yakho."
Le yeyona ndlela isebenzayo yokulungisa impazamo endiyaziyo kuba ayifuni debugger kwaphela. Ingqondo yakho ihlola amasebe ekhowudi ezininzi ngaxeshanye kwaye ikunika umbono obanzi wekhowudi xa uthelekiswa nayo idebugger yakudala.

Unokuzithelekisa nograndmaster odlala ichess kwaye ucinga i-3 ihamba phambili.

Ndisebenzisa obu buchule kuphela njengomgca wam wokuqala wokuzikhusela. Emva koko ndisebenzisa i-debugger yangempela.

Ukuze ufunde indlela yokucoca entlokweni yakho, kufuneka uziqhelanise. Xa uqinisekisa isisombululo kwingxaki kwaye ufumane "impendulo engalunganga", musa ukuya ngqo kwiqhosha lokulungisa ingxaki. Phinda ufunde ikhowudi kwaye ucinge: "Kwenzeka ntoni kulo mgca?", "Ukuba" apha kuyichaphazela njani inkqubo?", "Xa siphuma kwi-loop, lithini ixabiso le-iterator?"

Ngale ndlela uzicingela ngokwakho. Ngokuhamba kwexesha, uya kufunda ukubhala ikhowudi kwaye uyilungise kwi-fly.

Malunga nombhali

Indlela endiphumelele ngayo iimbasa zegolide ezi-3 kwezi-4 kwiOlimpiyadi yeKhompyutha
U-Andrei Margeloiu ngumcwangcisi onomdla onomdla kushishino, uqalo, nangaphandle. Ungaqhagamshelana naye kwi-LinkedIn.

Inguqulelo: Diana Sheremyeva

umthombo: www.habr.com

Yongeza izimvo