СП Колдонмосу - бардык алгоритмдерди жана берилиштер структураларын камтыган, программалоону сүйүүчүлөрдүн баардыгы үчүн бир жер. Ошондой эле ар бир темада мисалдар жана практика үчүн чечилбеген көйгөйлөр камтылган.
Атаандаштык программалоо - бул спорттун жөнү. Кандайдыр бир спорт түрү менен алектенип көрөлү, крикет жөнүндө биринчи жолу сүйлөшүп көрөлү. Чуркоо жана сагындым, бир-эки жолу жасасаңыз, акыры арканды ашып түшөсүз. Эми программалоо конкурсун метафоралык түрдө крикет оюну катары карайлы. Кодду түзүп, тапшырсаңыз, сиз WA ала аласыз (Туура эмес жооп).
Кодго өзгөртүү киргизип, акырында сиз биринчи AC'ди аласыз (Кабыл алынган / Туура жооп). Айтып кетейин, программалоо конкурсундагы суроолордун 20% жөнөкөй англис тилин сүйүктүү программалоо тилиңиздин кодуна которуу.
Ага кирсеңиз, оюндун жазылбаган эрежелерин үйрөнүп, уламдан-улам жакшырып каласыз.
Ишенип коюңуз, сиз баштоо үчүн кандайдыр бир "фантазиялык ат" алгоритмин же маалымат структурасын билип кереги жок. "Waft shot" жөнүндө уккан эмессиз, бирок сиз өз көчөңүздөгү мыкты жарган адамсыз, туурабы?
Макул, ошол жердеги программалоо көйгөйлөрүнүн алгачкы 20% ын жеңип алалы.
Сен билишиң керек:
Кайсы бир программалоо тилинде орто аралыкта туруңуз
Англисче! Англис тилин кодго айландыруу!
Ушул деңгээлдеги көйгөйдү мисал келтирели: Грозный Чанду
Керек болгон нерсе, STDIN'ден кириш тилкесин окуп чыгып, STDOUT тилкесине тескери басып чыгарыңыз. Алдыга, тапшыруу. Биринчи AC изде. Дагы каалайсызбы? Биздин практика бөлүмүндө жүктөр бар. Миңдеген туура сунуштары барларды издеңиз.
Эмесе, сиз чыныгы кыйынчылыктарды көтөрүп кетүүгө даярсыз. Тыгыз кармаңыз, биз тереңдеп баратабыз.
Сен билишиң керек:
1. Алгоритмдерди сорттоо жана издөө
2. хэш
3. Сан теориясы
4. Ач көздүк ыкмасы
Эң негизгиси, аларды эмнени, качан жана кайда колдонуу керектигин аныкташыңыз керек. Бул чындыгында эле татаал, демек, жаңыдан баштагандарга Code Monk сынактарын өткөрүп, ишеним сезимин өрчүтүүгө жардам берет. Ар бир сынактын алдында биз белгилүү бир темага арналган окуу куралын чыгарабыз, кийин конкурста көйгөйлөр ошол темага гана багытталат. Мен сизге окуу куралдарын карап чыгып, ар бир темада бир-эки суроону чечип берүүнү сунуш кылам.
Ушул тапта сиз суроолордун ой жүгүртүүбүздү алдоого арналганын билдиңиз. Кээде, эгер сиз жөнөкөй англис тилин кодго которсоңуз, TLE (Убакыт чеги ашып кетти) өкүмү чыгат. Убакыттын чегинен чыгып кетүү үчүн сизге жаңы ыкмаларды жана алгоритмдерди үйрөнүшүңүз керек. Айрым учурларда, Динамикалык программалоо (DP) жардамга келет. Жабыркаганда, сиз бул ыкманы интуитивдүү колдонсоңуз болот. Кандай гана конкурста болбосун, ДП чече турган жок дегенде бир суроо бар.
Ошондой эле, сызыктуу массивдин берилиштер структурасы аркылуу чечилбеген суроолор бар экендигин байкадыңыз.
1. Графикалык теория
2. Set Union Union (Union-find)
3. Минималдуу карыш бак
Берилген маалымат структураларынын топтому сизди жетиштүү деңгээлде камсыз кылат. Андан тышкары, сиз чыныгы искусство бул суроону чечүү үчүн билген техникаңызды өзгөртүү деп ойлочусуз. Оңой-Орто жана Ортоңку деңгээлдеги бардык суроолорду ушул ыкма менен чечсе болот.
Кыска программалоо чакырыктарынын лидер тактасына алдыңыз, туруктуу ишеничти сактаңыз. Жогоруда айтканымдай, бул спорт, аны аткармайынча, аны өздөштүрө албайсың. Алга, кыска сынакка катышып, күчтүү, алсыз жактарыңызды билип, саат чыкканда адреналин режимин кандайча колдонуп жатканыңызды билиңиз.
Мүмкүн болушунча өз логикаңызга кармансаңыз, акырында суроону чечүү үчүн талап кылынган алгоритмге окшош бир нерсени ойлоп табасыз. Жөн гана аны тазалаш керек. Ушул бир нече ыкмалар айланадагы көйгөйлөрдү чечүүгө жардам берет.
1. Сегмент дарагы
2. Сап алгоритмдери
3. аракет кылат, суффикс дарагы, массив суффиксы.
4. Оор жарыкты ыдыратуу
5. Графикалык боёк, тармак агымы
6. Sqrt бөлүнүшү.
Ошентип, ушул CP колдонмосун жүктөп алып, жаңы нерселерди үйрөнүүдөн ырахат алыңыз, андыктан убакыттын аздыгын татаалдаштырып, аларды коддоону унутпаңыз.
Качан жаңырды
2021-ж., 21-мар.