Bawo ni MO ṣe bori mẹta ninu awọn ami-ami goolu mẹrin ni Olympiad Computing

Bawo ni MO ṣe bori mẹta ninu awọn ami-ami goolu mẹrin ni Olympiad Computing

Mo n murasilẹ fun Google HashCode World Championship Finals 2017. Eyi ni idije ti o tobi julọ pẹlu awọn iṣoro algorithmic ti Google ṣeto.

Mo bẹrẹ kikọ C ++ lati ibere ni ipele kẹsan. Emi ko mọ nkankan nipa siseto, algoridimu tabi awọn ẹya data. Ni aaye kan Mo kọ laini koodu akọkọ mi. Oṣu meje lẹhinna, idije siseto ti wa ni iwaju. Mo fẹ lati rii bi ara mi ti siseto eto ẹkọ ti ṣiṣẹ daradara. O jẹ aye pipe.

Lẹhin ọjọ meji ti idije, awọn abajade wa: Mo gba ami-ẹri goolu.

Ẹ̀rù bà mí. Mo wa niwaju awọn oludije pẹlu ọdun 5 ti iriri. Mo mọ pe mo ti ṣiṣẹ takuntakun, ṣugbọn aṣeyọri yii kọja gbogbo awọn ireti mi. Mo rii pe siseto ere idaraya jẹ koko-ọrọ mi ati adaba sinu rẹ ni ori gigun.

Mo mọ ohun ti o mu mi lọ si aṣeyọri ati pe Mo fẹ lati pin pẹlu rẹ.

Bawo ni MO ṣe bori mẹta ninu awọn ami-ami goolu mẹrin ni Olympiad Computing

A tumọ nkan naa pẹlu atilẹyin EDISON Software, eyiti n ṣe abojuto ilera ti awọn pirogirama ati ounjẹ owurọ wọnAti ndagba aṣa software.

Ewo siseto ede lati yan

  • C ++ - Gíga niyanju! O yara pupọ. Ṣiṣe awọn algoridimu gba akoko diẹ nitori STL. C ++ ti gba ni gbogbo awọn idije. Mo ti kowe mi akọkọ ila ti koodu ni C ++.
  • C - Kọ ẹkọ C ++ nitori STL. Ti o ba mọ C, o tun le ṣe eto ni C ++.
  • Java jẹ ede siseto ti o lọra. O ni o ni a Big Integer kilasi, ṣugbọn o yoo ko ran o Elo. Ti idije ba ni opin akoko, pẹlu Java iwọ yoo kọja rẹ dajudaju. Java ko gba ni gbogbo awọn idije.

Nibo ni o le ṣe adaṣe

Mo ṣeduro Adajọ Ayelujara Sphere (SPOJ). O jẹ orisun ti o munadoko ni awọn ofin ti opoiye ati didara. Awọn olootu ati awọn solusan wa lori ayelujara ti o ba di ninu ilana ti yanju awọn iṣoro. Ni afikun si aaye yii Mo ṣeduro Ohun elo SPOJ и classifier isoro fun SPOJ.pl.

Ni akọkọ, o nilo lati hone imọ rẹ ti awọn ipilẹ

Ni kete ti o ba lo si sintasi ti ede, awọn iṣoro diẹ wa lati bori. Bẹrẹ pẹlu awọn iṣoro ti o rọrun ti o nilo adaṣe. Ni ipele yii, ohun akọkọ ni lati pinnu ara siseto rẹ. Boya o nifẹ lati kọ koodu pẹlu ọpọlọpọ aaye funfun, boya o ko ṣe. O le jẹ fifi awọn akọmọ sori laini kanna bi “ti o ba”, tabi o le jẹ fifi wọn sori awọn laini lọtọ.

O ni lati wa ara siseto rẹ nitori pe ara RẸ ni.

Nigbati o ba wa, ranti awọn ilana ipilẹ meji:

  • Koodu rẹ yẹ ki o rọrun lati ṣe. O yẹ ki o ni itunu ni imuse ojutu ti o wa pẹlu. Kí nìdí? Nitori lakoko idije kan, ohun ti o kẹhin ti o fẹ ni lati padanu ninu koodu rẹ. O dara nigbagbogbo lati lo awọn iṣẹju marun 5 ni ironu nipa bi o ṣe le jẹ ki imuse koodu rọrun ju lati lo iṣẹju mẹwa 10 lati gbiyanju lati ro ero rẹ.
  • Koodu rẹ yẹ ki o rọrun lati ka. Nigbati koodu ba rọrun lati ka, o rọrun lati ṣatunṣe. Jẹ ki a koju rẹ-awọn idun ṣẹlẹ ni gbogbo igba. Ṣe o mọ rilara yẹn nigbati o ni iṣẹju mẹwa 10 ti o ku ati pe o ko le rii aṣiṣe ti o buruju naa? Dajudaju o ṣe. Lati yago fun ipo yìí, kọ legible koodu. Ni kete ti o ba bẹrẹ ṣiṣatunṣe rẹ, koodu yoo dabi adayeba ati rọrun lati ni oye.

Eyi ni apẹẹrẹ ti temi siseto ara.

Bi o ṣe le Ṣe ilọsiwaju Awọn ọgbọn Idagbasoke Rẹ

Iwaṣe, adaṣe ati adaṣe diẹ sii. Mo ṣeduro pe ki o ṣiṣẹ nipasẹ 250 akọkọ awọn iṣoro ti o yanju julọ lori SPOJ. Yanju wọn ni ibere. Lo o kere ju wakati kan ni ero nipa ojutu si ọkọọkan wọn.

Maṣe sọ pe: "Iṣoro yii le pupọ fun mi, Emi yoo gbiyanju lati yanju ọkan ti nbọ." Eyi ni bi awọn olofo ṣe ronu.

Mu iwe kan ati pencil kan. Ronu nipa rẹ. Boya o le wa ojutu kan, boya kii ṣe. Ni o kere ju, iwọ yoo ṣe agbekalẹ ironu algorithmic. Ti o ko ba le wa ojutu kan laarin wakati kan, wa ojutu ti o ti ṣetan lori apejọ tabi ni awọn nkan.

Kini iwọ yoo ṣaṣeyọri pẹlu ọna yii? Kọ ẹkọ lati yara mu awọn imọran rẹ ṣiṣẹ nipa lilo koodu. Ki o si iwadi kilasika isoro ati aligoridimu.

Ni ẹẹkeji, o gbọdọ ṣakoso awọn algoridimu ati awọn ẹya data

Tẹle ọna akosori. Njẹ o bẹrẹ ṣiṣe lai mọ bi o ṣe le rin? Rara. Ṣe o le kọ ile giga kan laisi ipilẹ to lagbara? Ko lẹẹkansi.

O ko le foju awọn igbesẹ ti o wa ni ọna ẹkọ. Ti o ba foju pa wọn, iwọ yoo fi awọn ela imọ silẹ. Ni akoko pupọ wọn yoo buru si.

Bẹrẹ pẹlu awọn algoridimu ipilẹ ati awọn ẹya data

O soro lati bẹrẹ. Boya nitori pe o ko mọ kini lati kọ ẹkọ akọkọ. Iyẹn ni idi Mo ṣẹda ikẹkọ fidio kan “Alugoridimu ati Awọn ẹya data”. Nigbati o ba ṣẹda iṣẹ-ẹkọ yii, Mo da lori bii Emi yoo fẹ ki a kọ mi. Awọn lenu je alaragbayida! Diẹ sii ju awọn ọmọ ile-iwe 3000 lati awọn orilẹ-ede to ju 100 lọ ti forukọsilẹ fun iṣẹ ikẹkọ ni oṣu akọkọ.

Ti o ba ṣiṣẹ lori yanju awọn iṣoro ti o rọrun, iwọ kii yoo ni ilọsiwaju.

Ọna ti o munadoko julọ lati loye ohun ti o ko mọ ni lati ni iriri rẹ ni iṣe. Bí mo ṣe kọ́ nìyẹn. Mo kọ ọpọlọpọ awọn ilana tuntun ti Emi ko tii gbọ tẹlẹ nipa yiyan iṣẹ-ṣiṣe ti o nira.

Gbogbo iṣoro kẹta ti o ṣiṣẹ lori yẹ ki o kọ ọ nkankan titun. Ṣọra diẹ sii nigbati o yan awọn iṣoro. Yan awọn iṣoro ti o nira diẹ sii!

Ni kete ti o ba pari awọn iṣoro 250 wọnyi lati SPOJ, iwọ yoo ni oye ipilẹ ti awọn koko koko ti siseto ere idaraya. Pẹlu oye ti o jinlẹ ti imọran lẹhin awọn algoridimu ipilẹ, awọn algoridimu giga-giga yoo dabi pe o kere si eka. Ni ọna yii o le ṣe pupọ julọ ti imọ rẹ.

Ma wà jinle sinu kọọkan ti akọkọ awọn akori

Eyi ni ohun elo ti o niyelori pẹlu ọpọlọpọ alaye. Nibẹ ni iwọ yoo rii awọn algoridimu 10 oke ati awọn ẹya data fun koko kọọkan. Lẹhin awọn iṣoro 250 lati SPOJ, iwọ yoo mọ pupọ lati atokọ yii. Ṣugbọn iwọ yoo tun kọsẹ lori ọpọlọpọ awọn ohun ti iwọ ko ti gbọ tẹlẹ. Nitorinaa bẹrẹ ikẹkọ awọn koko-ọrọ wọnyi ni ọna ti o ga.

Ti o ko ba fun imọ rẹ lokun lẹhin kikọ nkan tuntun, iwọ yoo yara gbagbe ohun gbogbo.
Mo ṣeduro pe lẹhin ti o kọ algorithm tuntun kan, lo ni iṣe. Ṣiṣẹ nipasẹ awọn iṣẹ-ṣiṣe 2-3. Wa aami algorithm ni SPOJ. Nibẹ ni iwọ yoo wa awọn iṣoro ti o nilo algorithm yii lati yanju. Koju awọn oran wọnyi ni akọkọ.

Eto Yiyi Yiyi Titunto Nitori Yoo Ṣe Amọna Rẹ si Iṣẹgun
Lati iriri mi, gbogbo idije ni o kere ju iṣoro kan ìmúdàgba siseto. Ọpọlọpọ eniyan ni orififo nigbati wọn gbọ gbolohun naa “siseto ti o ni agbara” nitori wọn ko loye rẹ rara.

Ati pe eyi dara. Nitoripe ti o ba loye siseto ti o ni agbara, lẹhinna o yoo ṣẹgun.

Mo fẹran siseto ti o ni agbara, koko-ọrọ ayanfẹ mi ni. Aṣiri ti siseto ti o ni agbara ni lati ṣe awọn yiyan ti o dara julọ ni agbaye, kii ṣe awọn agbegbe nikan. O gbọdọ fọ iṣoro naa sinu awọn iṣoro iha ti o rọrun. Yanju ọkọọkan awọn iṣoro kekere wọnyi ni ẹẹkan. Lẹhinna ṣẹda ojutu kan ti o dapọ awọn iṣoro subproblem ti o yanju. Algoridimu ojukokoro - idakeji ti ìmúdàgba siseto. O nilo ṣiṣe awọn yiyan ti o dara julọ ni agbegbe ni igbesẹ kọọkan. Ati yiyan ti o dara julọ ni agbegbe le ja si ojutu agbaye buburu kan.

Lakoko ti o nkọ awọn imọran tuntun, ṣayẹwo Awọn olukọni TopCoder. Wọn jẹ alaye pupọ ati oye. O ṣeun si wọn Mo ni anfani lati ni oye awọn igi atọka alakomeji.

Se ise daadaa

Njẹ o ti gbọ ti awọn elere idaraya ti o ṣẹgun Olimpiiki laisi awọn ọdun ti adaṣe? Emi ko.

Ni gbogbo ọdun, awọn igbaradi fun Olympiad Kọmputa bẹrẹ ni Oṣu Kẹsan ati pari ni Oṣu Kẹrin.

Ni gbogbo ọjọ fun awọn oṣu 8 wọnyi Mo ṣe adaṣe fun awọn wakati 5.

Ati bẹẹni, Mo lo awọn wakati 5 wọnyi nikan yanju awọn iṣoro algorithmic. Mo ranti awọn ọjọ ti Mo ṣe adaṣe fun wakati 8 ati paapaa awọn wakati 10. Kí nìdí? Nitori ti mo feran o. Ojoojúmọ́ tí mo bá padà dé láti ilé ẹ̀kọ́, mo máa ń lọ tààrà sí yàrá yàrá, mo jókòó sórí kọ̀ǹpútà, mo sì bẹ̀rẹ̀ sí í ṣàyẹ̀wò ìṣòro tuntun kan. Tabi Mo n kọ algorithm tuntun ti Mo nilo lati mọ lati yanju iṣoro yii.

Ti o ba fẹ ṣẹgun, o ni lati ṣe kanna. Yan iṣoro kan ki o duro si i. Ronu nipa rẹ lakoko ti o nrin si fifuyẹ tabi lakoko iwakọ.

Bawo ni MO ṣe bori mẹta ninu awọn ami-ami goolu mẹrin ni Olympiad Computing

Njẹ o mọ pe nigba ti o ba sùn, ọpọlọ rẹ bajẹ alaye ti a gba ni ọjọ yẹn? Ó dà bí ẹni pé ó ń to àwọn ìwé jọ ní ọ̀nà tí wọ́n ń pè ní alfábẹ́ẹ̀tì sórí ibi ìpamọ́ kan. Ni pataki, ọpọlọ rẹ ronu nipa ọpọlọpọ awọn iṣoro ti o n koju.

Eyi le ṣee lo pẹlu ọgbọn. Ṣaaju ki o to lọ sùn, ka iṣoro ti o nira ki o ranti ohun ti o nilo lati yanju rẹ. Ni ipele yii, iwọ ko nilo lati wa ojutu funrararẹ. Lọ sun. Ọpọlọ rẹ yoo bẹrẹ lati ṣe ilana iṣoro yii. Nigbati o ba ji, o yoo yà lati mọ pe o ri ojutu nigba ti o sùn.

Gbiyanju o funrararẹ. O dabi idan.

Mo ṣẹda bulọọgi fidio kan

Bawo ni MO ṣe bori mẹta ninu awọn ami-ami goolu mẹrin ni Olympiad Computing

Paragira kukuru yii ko ni ibatan si siseto ere idaraya. Ti o ba wa ni ọdun twenties ati iyalẹnu bawo ni MO ṣe rii agbaye, o le fẹ lati ṣayẹwo bulọọgi fidio mi lori Youtube. Mo sọrọ nipa agbaye, igbesi aye ati imọ-ẹrọ kọnputa ninu rẹ.

Ṣiṣẹ ọlọgbọn

Eyi ni asiri aṣeyọri. O nilo awọn ibi-afẹde.

A jẹ eniyan ati pe a fẹran rẹ fa siwaju. Nigbagbogbo a fẹ lati fi ohun ti o nilo lati ṣe ni bayi. Wiwo Netflix nigbagbogbo jẹ igbadun diẹ sii ju ṣiṣe pẹlu awọn iṣoro siseto ti o ni agbara. O mọ eyi ati pe o nilo lati ṣatunṣe.

Bi o ṣe le lu idaduro

Ṣeto ara rẹ afojusun. Iwọ yoo wa awọn iṣoro ti o nifẹ nigbagbogbo lati eyiti o le kọ nkan tuntun (ṣayẹwo awọn orisun ti Mo mẹnuba loke). Ṣugbọn awọn iṣoro wọnyi nilo lati yanju, kii ṣe kika nipa nikan.

Nitorinaa eyi ni bii MO ṣe bori isunmọ. Mo bẹrẹ kalẹnda iwe kan ati ki o kun ni ọjọ kọọkan pẹlu awọn iṣoro ti Mo fẹ lati yanju. Mo ti nigbagbogbo kún jade isoro ọjọ meji ilosiwaju. Torí náà, mo mọ bí mo ṣe lè máa lo àkókò mi láwọn ọjọ́ tó tẹ̀ lé e.

Bawo ni MO ṣe bori mẹta ninu awọn ami-ami goolu mẹrin ni Olympiad Computing

Nitorinaa Mo ni itara nigbagbogbo. Mo nilo lati yanju awọn iṣoro kan ati ki o wa awọn tuntun lati kun awọn ọjọ ti nbọ lori kalẹnda. Líla awọn iṣoro ti a yanju kan lara nla. Mo mọ pe o fẹran rẹ paapaa.

Gba kalẹnda iwe tirẹ. Ma ṣe ṣẹda atokọ iṣẹ-ṣiṣe miiran lori foonu rẹ ti iwọ yoo gbagbe nipa ọla.

Bi o ṣe le ṣatunṣe aṣiṣe

Ṣe o fẹ lati di ọjọgbọn? Ti o ba jẹ bẹẹni, lẹhinna o nilo lati "ṣatunṣe rẹ ninu ọkan rẹ."
Eleyi jẹ nipa jina awọn julọ daradara yokokoro ilana Mo mọ nitori ti o ko ni beere a yokokoro ni gbogbo. Ọpọlọ rẹ ṣe ayẹwo awọn ẹka koodu pupọ ni ẹẹkan ati fun ọ ni awotẹlẹ ti o gbooro pupọ ti koodu ni akawe si Ayebaye yokokoro.

O le afiwe ara rẹ si a grandmaster ti o yoo chess ati ki o ro 3 gbe siwaju.

Mo lo ilana yii nikan bi laini aabo akọkọ mi. Lẹhinna Mo lo olutọpa gidi kan.

Lati kọ bi o ṣe le yokokoro ni ori rẹ, o nilo lati ṣe adaṣe. Nigbati o ba fọwọsi ojutu kan si iṣoro kan ati gba “idahun ti ko tọ”, maṣe lọ taara si bọtini yokokoro. Tun ka koodu naa ki o ronu: “Kini n ṣẹlẹ ni laini yii?”, “Bawo ni “ti o ba” nibi ṣe ni ipa lori eto naa?”, “Nigbati a ba jade ni lupu naa, kini iye aṣetunṣe?”

Ni ọna yii o ronu fun ara rẹ. Ni akoko pupọ, iwọ yoo kọ ẹkọ lati kọ koodu ati ṣatunṣe rẹ lori fo.

nipa onkowe

Bawo ni MO ṣe bori mẹta ninu awọn ami-ami goolu mẹrin ni Olympiad Computing
Andrei Margeloiu jẹ olupilẹṣẹ itara pẹlu ifẹ si iṣowo, awọn ibẹrẹ, ati ita. O le kan si i lori LinkedIn.

Itumọ: Diana Sheremyova

orisun: www.habr.com

Fi ọrọìwòye kun