Competitive Programming Guide

Vsebuje oglase
5 tis.+
Prenosi
Kategorija vsebine
Primerno za vse
Slika posnetka zaslona
Slika posnetka zaslona
Slika posnetka zaslona
Slika posnetka zaslona

O tej aplikaciji

Priročnik CP je edino mesto za vse ljubitelje tekmovalnega programiranja, saj vsebuje vse algoritme in podatkovne strukture. Vsaka tema vsebuje primere in nerešene težave za prakso.

Tekmovalno programiranje je šport, mislim dobesedno. Ukvarjajte se s katerim koli športom, upoštevajmo kriket, zato se prvič kopate. Nihaj in zgreši, to naredi nekajkrat in na koncu boš udaril čez vrvi. Zdaj razmislite, da je tekmovanje v programiranju metaforično kot igra kriketa. Sestavite kodo in jo pošljite, morda boste dobili WA (Wrong Answer).
Spremenite kodo in na koncu boste dobili svoj prvi AC (Sprejet / pravilen odgovor). Dovolite mi, da pokukam, približno 20% vprašanj na tekmovanju v programiranju je preprosta pretvorba navadne angleščine v kodo vašega najljubšega programskega jezika.
Ko stopite naravnost vanj, se boste naučili nenapisanih pravil igre, ko boste igrali težje in postajali boljši.
 In verjemite mi, da za začetek ni treba poznati algoritma ali strukture podatkov o "domišljiji ime". Ste že kdaj slišali za "Waft shot", pa vendar ste najboljši netopir v svoji ulici, kajne?

V redu, dajmo osvojiti prvih 20% težav s programiranjem.
Vedeti morate:
Vmesno zadrževanje katerega koli programskega jezika
Angleščina! Pretvori angleščino v kodo!
Vzemimo primer težave te stopnje: Grozni Chandu

Vse, kar morate storiti, je, da preberete vhodno vrstico iz STDIN in natisnete obratno stran te vrstice na STDOUT. Pojdi naprej, oddaj prijavo. Poiščite svoj prvi AC. Želijo več? V oddelku za vadbo imamo veliko bremen. Poiščite tiste s tisoči pravilnih predlogov.

V redu, zdaj ste pripravljeni na resničen izziv. Držite se, potapljamo se globlje.

Vedeti morate:

1. Razvrsti in poišči algoritme
2. Hashing
3. Teorija števil
4. Pohlepna tehnika

Še pomembneje je, da morate ugotoviti, kaj, kdaj in kje jih uporabiti. Postane res zapleteno in zato pomagamo začetnikom, da dobijo občutek samozavesti, izvedemo vrsto tekmovanj kot Code Monk. Pred vsakim natečajem objavimo vadnico o določeni temi, kasneje pa na natečaju težave usmerjajo samo v to določeno temo. Priporočam, da si ogledate vaje in rešite vprašanje ali dve o vsaki temi.

Do zdaj ste že ugotovili, da so vprašanja zastavljena tako, da zavajajo način, kot si mislimo. Včasih, če preprosto angleščino pretvorite v kodo, končate z razsodbo TLE (časovni rok je presežen). Za obvladovanje časovnih omejitev se morate naučiti nabora novih tehnik in algoritmov. V nekaterih primerih na pomoč priskoči dinamično programiranje (DP). Infekt, to tehniko ste morda že intuitivno uporabili. V vsakem natečaju je vedno vsaj eno vprašanje, ki ga lahko reši DP.

Prav tako ste opazili, da obstajajo vprašanja, ki jih linearne matrične podatkovne strukture preprosto ne morejo rešiti.

1. Teorija grafov
2. Disjoint Set Union (iskanje v Uniji)
3. Najmanjše drevesce

Ta sklop podatkovnih struktur vas bo dobil dovolj daleč. Poleg tega bi si ugotovili, da je prava umetnost spreminjati tehnike, ki jih poznate, da bi rešili vprašanje. Vsa vprašanja v zvezi z Easy-Srednjo in Srednjo stopnjo se lahko lotevajo na ta način.

Vsi ste pripravljeni na vrh lestvic najboljših izzivov kratkega programiranja, le vztrajno vztrajajte. Kot sem že omenil, to je šport, ne boste ga obvladali, dokler ga dejansko ne počnete. Pojdi naprej, udeleži se kratkega tekmovanja, spoznaj svoje prednosti, slabosti in poglej, kako ravnaš z adrenalinskim načinom, ko ura tika.

Čim dlje se držite lastne logike, boste na koncu našli nekaj podobnega algoritmu, ki je potreben za rešitev vprašanja. Morate ga samo krtačiti. Več teh tehnik vam bo pomagalo rešiti nekatere najtežje težave okoli.

1. Drevo segmenta
2. Nizki algoritmi
3. Poskusi, Suffix Tree, Suffix Array.
4. Težka lahka razgradnja
5. Barvanje grafov, omrežni tok
6. Razkroj Sqrt.

Zato prenesite ta priročnik o CP in uživajte v učenju novih stvari, prav tako jih ne pozabite KODIRATI z manj časovne zapletenosti.
Posodobljeno dne
21. mar. 2021

Varnost podatkov

Razumevanje, kako razvijalci zbirajo in razkrivajo vaše podatke, je prvi korak do varnosti. Varovanje podatkov in zagotavljanje varnosti podatkov se morda razlikujeta glede na vašo uporabo, območje in starost. Razvijalec je zagotovil te podatke in jih bo sčasoma morda posodobil.
Ta aplikacija lahko deli te vrste podatkov z drugimi ponudniki.
Lokacija, Osebni podatki in še 8
Ta aplikacija lahko zbira te vrste podatkov.
Lokacija
Podatki niso šifrirani
Podatkov ni mogoče izbrisati

Novosti

** Algorithms enhanced