Momwe ndinapindulira mendulo zagolide 3 mwa 4 pa Computing Olympiad

Momwe ndinapindulira mendulo zagolide 3 mwa 4 pa Computing Olympiad

Ndakhala ndikukonzekera Final ya Mpikisano Wapadziko Lonse wa Google HashCode wa 2017. Uwu ndiye mpikisano waukulu kwambiri wa algorithmic wokonzedwa ndi Google.

Ndinayamba kuphunzira C++ kuyambira pachiyambi mu giredi XNUMX. Sindinkadziwa chilichonse chokhudza mapulogalamu, ma aligorivimu ndi mapangidwe a data. Panthawi ina, ndinalemba mzere wanga woyamba wa code. Patatha miyezi isanu ndi iwiri, mpikisano wokonza mapulogalamu unali pafupi. Ndinkafuna kudziwa momwe maphunziro anga amagwirira ntchito. Unali mwayi wabwino kwambiri.

Pambuyo pa masiku awiri akupikisana, zotsatira zinabwera: Ndinapambana mendulo ya golide.

Ndinadabwa kwambiri. Ndinapita patsogolo pa mpikisano ndi zaka 5 zakuchitikira. Ndinkadziwa kuti ndinagwira ntchito mwakhama, koma zimenezi zinaposa zimene ndinkayembekezera. Ndinazindikira kuti masewera a masewera ndi mutu wanga ndipo ndinalowa nawo ndi mutu wanga.

Ndikudziwa zomwe zinandipangitsa kuti ndikhale wopambana ndipo ndikufuna kugawana nanu.

Momwe ndinapindulira mendulo zagolide 3 mwa 4 pa Computing Olympiad

Nkhaniyi idamasuliridwa mothandizidwa ndi EDISON Software, yomwe amasamalira thanzi la opanga mapulogalamu ndi chakudya chawo cham'mawandipo amapanga mapulogalamu achizolowezi.

Chilankhulo cha mapulogalamu oti musankhe

  • C ++ - Zabwino kwambiri! Amathamanga kwambiri. Kukhazikitsa ma algorithms kumatenga nthawi yochepa chifukwa cha STL. C ++ imavomerezedwa mumipikisano yonse. Ndinalemba mzere wanga woyamba wa code mu C ++.
  • C - phunzirani C ++ chifukwa cha STL. Ngati mukudziwa C, mudzatha kupanga pulogalamu mu C ++.
  • Java ndi chinenero chapang'onopang'ono chokonzekera. Ili ndi kalasi ya Big Integer, koma sizingakuthandizeni kwambiri. Ngati mpikisano uli ndi malire a nthawi, ndi Java mudzadutsa. Java sivomerezedwa mumipikisano yonse.

Kodi mungayesere kuti

Ndikupangira Sphere Online Judge (SPOJ). Ndi gwero imayenera malinga ndi kuchuluka ndi khalidwe. Zosintha ndi zothetsera zilipo pa intaneti ngati mungokakamira panjira yothetsa mavuto. Kuphatikiza pa tsamba ili, ndikupangira SPOJ Toolkit и gulu lamavuto la SPOJ.pl.

Choyamba, muyenera kukulitsa chidziwitso chanu pazoyambira

Mutazolowera kalembedwe ka chinenerocho, mudzafunika kuthetsa mavuto ena. Yambani ndi mavuto osavuta omwe amafunikira kuyeserera. Panthawi imeneyi, chinthu chachikulu ndikusankha kalembedwe kanu. Mwina mumakonda kulemba khodi yokhala ndi malo ambiri, mwina simukutero. Mutha kuyika zolembera pamzere womwewo ngati "ngati", kapena mukuyika mizere yosiyana.

Muyenera kupeza kalembedwe kanu chifukwa ndi kalembedwe kanu.

Pamene mukuifufuza, kumbukirani mfundo ziwiri zofunika:

  • Khodi yanu iyenera kukhala yosavuta kugwiritsa ntchito. Muyenera kukhala omasuka kugwiritsa ntchito yankho lomwe mwapeza. Chifukwa chiyani? Chifukwa pa mpikisano, chinthu chomaliza chomwe mukufuna ndikutayika mu code yanu. Nthawi zonse ndi bwino kuthera mphindi 5 zoonjezera poganizira za momwe mungachepetsere kukhazikitsidwa kwa kachidindo kusiyana ndi kuthera mphindi 10 kuyesa kuziganizira.
  • Khodi yanu ikhale yosavuta kuwerenga. Khodi ikakhala yosavuta kuwerenga, ndiyosavuta kuyisintha. Tinene kuti zolakwa zimachitika nthawi zonse. Mukudziwa kumverera komweko pakatsala mphindi 10 ndipo simungapeze cholakwika chachikulu? Inde mukutero. Kuti mupewe izi, lembani khodi yovomerezeka. Mukangoyamba kuyisintha, codeyo imamva yachilengedwe komanso yosavuta kumvetsetsa.

Nachi chitsanzo changa kalembedwe kapulogalamu.

Momwe mungakulitsire luso lanu lachitukuko

Yesetsani, yesetsani ndikuchita zambiri. Ndikupangira kuti muthe kuthana ndi mavuto 250 oyamba omwe amatha kutha Zamgululi. Athetseni mwadongosolo. Khalani osachepera ola limodzi kuganizira za yankho la aliyense wa iwo.

Osanena kuti, "Vutoli ndi lovuta kwambiri kwa ine, ndiyesera lotsatira." Umu ndi momwe otayika amaganizira.

Tengani pepala ndi pensulo. Ganizilani. Mwina mungapeze yankho, mwina ayi. Pang'ono ndi pang'ono, mupanga kuganiza kwa algorithmic. Ngati simungathe kubwera ndi yankho mkati mwa ola limodzi, yang'anani njira yokonzekera pabwalo kapena m'nkhani.

Mukwaniritsa chiyani ndi njira iyi? Phunzirani momwe mungagwiritsire ntchito malingaliro anu mwachangu ndi code. Ndipo phunzirani zovuta zakale ndi ma algorithms.

Chachiwiri, muyenera kudziwa ma algorithms ndi mapangidwe a data

Tsatirani njira ya hierarchical. Kodi munayamba kuthamanga osatha kuyenda? Ayi. Kodi mungathe kumanga nyumba yosanja popanda maziko olimba? Apanso ayi.

Simungathe kunyalanyaza magawo a njira yophunzirira. Mukawanyalanyaza, mudzasiyidwa ndi mipata ya chidziwitso. M’kupita kwa nthaŵi, zidzangowonjezereka.

Yambani ndi ma aligorivimu ofunikira ndi mapangidwe a data

Ndizovuta kuyamba. Mwina chifukwa chakuti simudziwa zoyenera kuphunzira poyamba. Ndichifukwa chake Ndinapanga maphunziro a kanema "Algorithms and Data Structures". Popanga maphunzirowa, ndidadalira momwe ndikufuna kuphunzitsidwa. Kuyankha kunali kodabwitsa! Ophunzira oposa 3000 ochokera m'mayiko oposa 100 adalembetsa maphunzirowa m'mwezi woyamba.

Ngati mukuyesetsa kuthetsa mavuto osavuta, simudzakhala bwino.

Njira yothandiza kwambiri yodziwira zomwe simukuzidziwa ndikukumana nazo muzochita. Ndi mmene ndinaphunzirira. Ndinaphunzira njira zambiri zatsopano zomwe sindinamvepo posankha vuto lovuta.

Vuto lililonse lachitatu lomwe mumagwiritsa ntchito liyenera kukuphunzitsani zatsopano. Samalani ndi kusankha kwa mavuto. Sankhani zovuta zovuta!

Mukamaliza mavuto 250 awa kuchokera ku SPOJ, mudzakhala ndi chidziwitso chambiri pamitu yayikulu yamapulogalamu amasewera. Pomvetsetsa mozama zamalingaliro omwe ali kumbuyo kwa ma algorithms oyambira, ma algorithms apamwamba sangawoneke ovuta kwambiri. Chifukwa chake, mutha kugwiritsa ntchito chidziwitso chanu pamlingo waukulu.

Phulani mozama mu mutu uliwonse waukulu

Pano pali gwero lamtengo wapatali ndi zambiri zambiri. Kumeneko mudzapeza ma aligorivimu apamwamba 10 ndi ma data pamutu uliwonse. Pambuyo pamavuto a 250 kuchokera ku SPOJ, mudzadziwa zambiri pamndandandawu. Koma mudzapunthwanso pa zinthu zambiri zomwe simunamvepo. Chifukwa chake yambani kufufuza mitu iyi mokwera.

Ngati simulimbitsa chidziwitso chanu mutaphunzira zatsopano, mudzayiwala zonse mwamsanga.
Ndikupangira kuti mutaphunzira algorithm yatsopano, igwiritseni ntchito. Chitani ntchito 2-3. Yang'anani chizindikiro cha algorithm mu SPOJ. Kumeneko mudzapeza mavuto omwe algorithm iyi ikufunika. Yambani ndi izi kaye.

Mvetsetsani mapulogalamu amphamvu chifukwa adzakuthandizani kupambana
Muzochitika zanga, mpikisano uliwonse uli ndi vuto limodzi mapulogalamu amphamvu. Anthu ambiri amadwala mutu akamva mawu oti "dynamic programming" chifukwa samamvetsetsa nkomwe.

Ndipo izi ndi zabwino. Chifukwa ngati mumvetsetsa mapulogalamu amphamvu, ndiye kuti mudzapambana.

Ndimakonda mapulogalamu amphamvu, ndi mutu womwe ndimakonda kwambiri. Chinsinsi cha mapulogalamu amphamvu ndikupanga zisankho zabwino padziko lonse lapansi, osati zam'deralo zokha. Muyenera kugawa vutolo kukhala ntchito zazing'ono zosavuta. Kuthetsa vuto lililonse laling'onoli kamodzi kokha. Kenako pangani yankho lomwe limaphatikiza zovuta zomwe zathetsedwa. Algorithm yadyera ndizosiyana ndi mapulogalamu amphamvu. M'menemo, munthu ayenera kupanga chisankho chabwino kwambiri pagawo lililonse. Ndipo kusankha koyenera kwanuko kungayambitse vuto losauka padziko lonse lapansi.

Pamene mukufufuza malingaliro atsopano, fufuzani TopCoder maphunziro. Zili zomveka komanso zomveka. Chifukwa cha iwo ndinatha kumvetsa mitengo ya binary indexed.

gwirani ntchito molimbika

Kodi mudamvapo za othamanga omwe amapambana ma Olimpiki osachita zaka zambiri? Ine ayi.

Chaka chilichonse, kukonzekera Computer Olympiad kunayamba mu September ndipo kutha mu April.

Tsiku lililonse m’miyezi 8 imeneyi ndinkachita masewera olimbitsa thupi kwa maola asanu.

Ndipo inde, ndidakhala maola 5 awa ndikungothetsa mavuto a algorithmic. Ndimakumbukira masiku omwe ndimayeserera maola 8 kapena 10. Chifukwa chiyani? Chifukwa ndinachikonda. Tsiku lililonse, pobwerera kunyumba kuchokera kusukulu, ndinkangopita kuchipinda chogona, n’kukhala pansi pa kompyuta n’kuyamba kuthetsa vuto lina. Kapena kuphunzira algorithm yatsopano yomwe imayenera kudziwika kuti ithetse vutoli.

Ngati mukufuna kupambana, muyenera kuchita chimodzimodzi. Sankhani vuto ndikukhala nalo. Ganizilani izi mukuyenda mumsewu wopita ku sitolo kapena mukuyendetsa galimoto.

Momwe ndinapindulira mendulo zagolide 3 mwa 4 pa Computing Olympiad

Kodi mumadziwa kuti mukagona, ubongo wanu umasokoneza zomwe mwasonkhanitsa tsiku limenelo? Akuwoneka kuti akuunjika mabuku motsatira alifabeti pashelefu. Kwenikweni, ubongo wanu umaganizira za mavuto osiyanasiyana omwe mukukumana nawo.

Izi zitha kugwiritsidwa ntchito mwaluso. Musanagone, werengani vuto lovuta ndikukumbukira zomwe zimafunika kulithetsa. Pakadali pano, simuyenera kuyang'ana yankho lokha. Kagoneni. Ubongo wanu udzayamba kukonza vutoli. Mukadzuka, mudzadabwa kuona kuti munapeza yankho pamene munagona.

Yesani nokha. Zili ngati matsenga.

Ndinapanga vlog

Momwe ndinapindulira mendulo zagolide 3 mwa 4 pa Computing Olympiad

Ndime yaifupi iyi siyikukhudzana ndi mapulogalamu amasewera. Ngati muli ndi zaka makumi awiri ndipo mukudabwa momwe ndikuwonera dziko lapansi, ndiye kuti mutha kuyang'ana vlog yanga pa Youtube. Ine ndikulankhula mmenemo za dziko, moyo ndi informatics.

Gwirani ntchito mwanzeru

Ichi ndi chinsinsi cha kupambana. Muyenera zolinga.

Ndife anthu ndipo timakonda kuzengereza. Nthawi zonse timafuna kusiya zomwe zikuyenera kuchitika pakali pano. Kuwonera Netflix nthawi zonse kumakhala kosangalatsa kuposa kuthana ndi zovuta zamapulogalamu. Mukudziwa ndipo muyenera kukonza.

Momwe mungagonjetsere kuzengereza

Khalani ndi zolinga. Nthawi zonse mudzapeza zovuta zosangalatsa zomwe mungaphunzirepo zatsopano (onani zomwe ndatchula pamwambapa). Koma mavutowa ayenera kuthetsedwa, osati kungowerenga chabe.

Choncho, umu ndi mmene ndinagonjetsera kuzengereza. Ndinayamba kalendala ya mapepala ndikudzaza tsiku lililonse ndi mavuto omwe ndinkafuna kuthetsa. Nthawi zonse ndimadzaza mavuto pasadakhale, masiku awiri kusanachitike. Choncho ndinadziwa kugwiritsa ntchito bwino nthawi yanga m’masiku otsatira.

Momwe ndinapindulira mendulo zagolide 3 mwa 4 pa Computing Olympiad

Chotero ndakhala wosonkhezeredwa nthaŵi zonse. Ndinafunika kuthetsa mavuto ena ndi kupeza atsopano oti ndidzaze masiku otsatira pa kalendala. Kuthetsa mavuto omwe adathetsedwa ndikwabwino kwambiri. Ndikudziwa kuti inunso mumakonda.

Pezani kalendala yanu yamapepala. Osapanganso mndandanda wazinthu zina pafoni yanu zomwe mudzayiwala mawa.

Momwe mungachotsere zolakwika bwino

Kodi mukufuna kukhala katswiri? Ngati inde, ndiye kuti muyenera "kusokoneza malingaliro anu".
Iyi ndiye njira yabwino kwambiri yochotsera zolakwika yomwe ndikudziwa chifukwa siifuna kuchotsa cholakwika chilichonse. Ubongo wanu umafufuza nthambi zingapo zamakhodi nthawi imodzi ndikukupatsani mawonekedwe ochulukirapo a code kuposa classic debugger.

Mutha kudziyerekeza nokha ndi agogo omwe amasewera chess ndikuganiza 3 kupita patsogolo.

Ndimagwiritsa ntchito njirayi ngati njira yanga yoyamba yodzitetezera. Ndiye ndimagwiritsa ntchito debugger yeniyeni.

Kuti muphunzire "kuwonongeka mu malingaliro anu", muyenera kuyeseza. Mukavomereza yankho lavuto ndikupeza "yankho lolakwika", musapite molunjika pa batani la debugger. Werenganinso kachidindoyo ndikuganiza: "Kodi chikuchitika ndi chiyani pamzerewu?", "Kodi" "ngati" imakhudza bwanji pulogalamu pano?", "Tikatuluka mulupu, kodi mtengo wa iterator ndi wotani?".

Kotero inu mukuganiza nokha. M'kupita kwa nthawi, mudzaphunzira kulemba kachidindo ndi kuthetsa vuto popita.

Za wolemba

Momwe ndinapindulira mendulo zagolide 3 mwa 4 pa Computing Olympiad
Andrei Margeloiu ndiwokonda mapulogalamu omwe ali ndi chidwi pazamalonda, zoyambira komanso zachilengedwe. Mutha kulumikizana naye pa LinkedIn.

Kumasulira: Diana Sheremyeva

Source: www.habr.com

Kuwonjezera ndemanga