Ang Handbook ng CP ay ang isang lugar para sa lahat ng mga mahilig sa programming na naglalaman ng mga ito dahil naglalaman ang lahat ng mga algorithm at istruktura ng data. Gayundin ang bawat paksa ay naglalaman ng mga halimbawa at hindi nalutas na mga problema para sa pagsasanay.
Ang Competitive Programming ay isang isport, literal kong ibig sabihin. Kumuha ng anumang isport, isaalang-alang natin ang kuliglig para sa bagay na iyon, lumakad ka sa bat na sa unang pagkakataon. Pag-indayog at isang miss, gawin itong ilang beses at sa huli ay pindutin mo ang isa sa mga lubid. Ngayon, isaalang-alang ang isang paligsahan sa programming bilang isang laro ng kuliglig, metaphorically. Pagsumite ng isang code at isumite, maaari kang makakuha ng WA (Maling Sagot).
Gumawa ng mga pagbabago sa code at sa huli makakakuha ka ng iyong unang AC (Natanggap / Tamang Sagot). Hayaan akong bigyan ka ng isang sneak peek, tungkol sa 20% ng mga katanungan sa isang paligsahan sa programming ay simpleng pag-convert ng simpleng ingles sa isang code ng iyong paboritong wika sa programming.
Maglakad kaagad dito, matututunan mo ang mga hindi nakasulat na mga patakaran ng laro habang tumatakbo ka nang mas mahirap at gumaling.
At maniwala ka sa akin, hindi mo kailangang malaman ang anumang "magarbong pangalan" algorithm o data-istraktura upang makapagsimula. Nakarating na narinig ang "Waft shot", gayon pa man ikaw ang pinakamahusay na batsman sa iyong kalye, di ba?
Sa totoo lang, hayaan ang talunin ang unang 20% ng mga problema sa programming doon.
Kailangan mong malaman:
Mag-ugnay na hawakan ang anumang wika sa programming
Ingles! I-convert ang ingles sa code!
Magsagawa tayo ng isang halimbawa ng problema sa antas na ito: kakila-kilabot na Chandu
Ang kailangan mo lang gawin, basahin ang linya ng input mula sa STDIN at i-print ang kabaligtaran ng linya na iyon hanggang sa PAGHAHANAP. Sige, gumawa ng isang pagsumite. Hahanapin ang iyong unang AC. Gusto mo pa? Mayroon kaming mga naglo-load sa aming seksyon ng pagsasanay. Maghanap para sa mga may libu-libo ng tamang pagsumite.
Okay, ngayon handa ka nang magsagawa ng ilang tunay na hamon. Hawakan nang mahigpit, kami ay sumisid nang mas malalim.
Kailangan mong malaman:
1. Pagbukud-bukurin at Paghahanap algorithm
2. Paghahabol
3. Teorya ng Bilang
4. Masidhing Teknik
Mas mahalaga, kailangan mong malaman kung ano, kailan at saan ilalapat ang mga ito. Ito ay makakakuha ng talagang nakakalito at samakatuwid upang matulungan ang mga nagsisimula na makakuha ng isang kumpiyansa ng kumpiyansa na nagpapatakbo kami ng isang serye ng mga paligsahan bilang Code Monk. Bago ang bawat paligsahan, naglalabas kami ng isang tutorial sa ilang paksa at sa ibang pagkakataon sa paligsahan ang mga problema ay naglalayong lamang sa partikular na paksa. Inirerekumenda ko sa iyo na dumaan sa mga tutorial at malutas ang isang katanungan o dalawa sa bawat paksa.
Sa ngayon ay napagtanto mo na ang mga tanong ay naka-frame upang linlangin ang iniisip natin. Minsan, Kung i-convert mo ang simpleng ingles sa code, magtatapos ka sa hatol ng TLE (Time Limitadong Tagumpay). Kailangan mong malaman ang isang hanay ng mga bagong pamamaraan at algorithm upang makaya sa mga limitasyon ng oras. Sa ilang mga kaso, ang Dynamic Programming (DP) ay sumagip. Mahina, maaaring ginamit mo na ang intuitively na pamamaraan na ito. Mayroong palaging hindi bababa sa isang katanungan sa anumang paligsahan na maaaring malutas ng DP.
Gayundin, napansin mo na may mga katanungan na hindi lamang malulutas ng mga guhit na data-istruktura.
1. Teorya ng Graph
2. Disjoint Set Union (Union-find)
3. Minimum na Spanning Tree
Ang mga hanay ng mga istruktura ng data ay makakakuha ka ng sapat na malayo. Bukod dito, naisip mo na ang tunay na sining ay upang baguhin ang mga pamamaraan na alam mo upang malutas ang isang katanungan. Lahat ng mga tanong na Madali-Katamtaman at Katamtamang antas ay maaaring ma-tackle sa ganitong paraan.
Lahat kayo ay nakatakda upang itaas ang mga leaderboard ng Maikling Programming Hamon, panatilihin lamang ang patuloy na pagtitiyaga. Tulad ng nabanggit ko na, ito ay isang isport, hindi mo ito kakayanin hanggang sa gawin mo talaga ito. Sige, lumahok sa isang maikling paligsahan, alamin ang iyong mga kalakasan, kahinaan at makita kung paano mo mahawakan ang adrenaline mode kapag ang oras ay nakakagat.
Dumikit sa iyong sariling lohika hangga't maaari, makakakuha ka sa wakas ng isang bagay na katulad ng algorithm na kinakailangan upang malutas ang tanong. Kailangan mo lang i-brush up ito. Marami sa mga pamamaraan na ito ay makakatulong sa iyo na malutas ang ilan sa mga pinakamahirap sa mga problema sa paligid.
1. Kahoy na Segment
2. String Algorithms
3. Mga Tries, Suffix Tree, Suffix Array.
4. Malakas na Magaan na Pag-agos
5. Pangkulay sa grapiko, Pag-agos ng Network
6. Pag-agnas ng Sqrt.
Kaya I-download ang Handbook ng CP na ito at masiyahan sa pag-aaral ng mga bagong bagay din huwag kalimutan na CODE ang mga ito nang mas kaunting Oras ng pagiging kumplikado.
Na-update noong
Mar 21, 2021