Competitive Programming Guide

Жарнамалары бар
5 мың+
Жүктеп алынғандар
Контенттің жас шектеуі
Барлығы үшін
Скриншот кескіні
Скриншот кескіні
Скриншот кескіні
Скриншот кескіні

Осы қолданба туралы

СП анықтамалығы барлық бәсекеге қабілетті бағдарламашылар үшін бір орын, өйткені онда барлық алгоритмдер мен мәліметтер құрылымы бар. Сондай-ақ, әр тақырыпта мысалдар мен практикада шешілмеген мәселелер бар.

Бәсекеге қабілетті бағдарламалау дегеніміз - бұл спорт. Кез-келген спортпен шұғылданыңыз, крикет қарастырайық, сіз бірінші рет ваннаға барасыз. Айналдырмаңыз және жіберіп алыңыз, мұны екі рет жасаңыз, сіз ақырында арқанның біріне соғыласыз. Енді бағдарламалау сайысын метафоралық түрде крикет ойыны ретінде қарастырыңыз. Кодты құрастырыңыз және жіберіңіз, сіз WA (Қате жауап) ала аласыз.
Кодқа өзгертулер енгізіңіз, нәтижесінде сіз өзіңіздің алғашқы AC аласыз (қабылданған / дұрыс жауап). Сізге құпия ақпарат берейін, бағдарламалау конкурсындағы сұрақтардың 20% -ы қарапайым ағылшын тілін сүйікті бағдарламалау тілінің кодына қарапайым түрде аудару болып табылады.
Дәл сол жерге кіріңіз, сіз ойынның жазылмаған ережелерін үйренесіз, неғұрлым қатты ойнап, жақсарасыз.
 Маған сеніңіз, сізге бастау үшін қандай да бір алгоритмді немесе деректер құрылымын білудің қажеті жоқ. Сіз «Вафт ату» туралы естіген шығарсыз, бірақ сіз өзіңіздің көшедегі ең мықты адамсыз, солай ма?

Жарайды, бағдарламадағы алғашқы 20% -ды жеңейік.
Сіз білуіңіз керек:
Кез-келген бағдарламалау тілінде аралық ұстау
Ағылшын! Ағылшын тілін кодқа түрлендіріңіз!
Осы деңгейдегі проблеманы мысалға келтірейік: қорқынышты Чанду

Сізге STDIN-тен кіріс жолын оқып, кері жолды STDOUT-ге басып шығару керек. Алға, жіберіңіз. Бірінші айнымалы токты іздеңіз. Тағы қалайсыз ба? Біздің жаттығу бөлімінде жүктемелер бар. Мыңдаған дұрыс жіберулерді іздеңіз.

Жарайды, енді сіз нақты сынақты қабылдауға дайынсыз. Тығыз ұстаңыз, біз тереңірек сүңгудамыз.

Сіз білуіңіз керек:

1. Іріктеу және іздеу алгоритмдері
2. Хэш
3. Сандар теориясы
4. Ашкөздік техникасы

Ең бастысы, сіз оларды не, қашан және қайда қолдануға болатынын анықтауыңыз керек. Бұл өте қиын және демек, жаңадан бастаушыларға Code Monk сияқты бірқатар сайыстарды өткізіп, сенімділік сезімін алуға көмектеседі. Әр байқаудың алдында біз белгілі бір тақырыпқа арналған оқу құралын шығарамыз, содан кейін байқауда проблемалар тек сол тақырыпқа бағытталған. Сізге оқулықтардан өтіп, әр тақырып бойынша бір-екіден сұрақ қоюды ұсынамын.

Сіз сұрақтардың біздің ойымызды алдау үшін жасалынғанын түсіндіңіз. Кейде, егер сіз қарапайым ағылшын тілін кодқа аударсаңыз, TLE (Уақыт шектеулері асырылған) үкімімен аяқталасыз. Уақыт шектеулерін жеңу үшін сізге жаңа әдістер мен алгоритмдердің жиынтығын үйрену керек. Кейбір жағдайларда динамикалық бағдарламалау (DP) көмекке келеді. Infact, сіз бұл әдісті бұрыннан қолданған боларсыз. Кез-келген сайыста әрдайым кемінде бір сұрақ болуы керек, оны DP шешуі мүмкін.

Сондай-ақ, сіз сызықтық массивтің деректер құрылымымен шешілмейтін сұрақтар бар екенін байқадыңыз.

1. Графикалық теория
2. Одақтан бас тарту (Union-find)
3. Ең аз тарайтын ағаш

Деректер құрылымының бұл жиынтығы сізге жеткілікті болады. Сонымен қатар, сіз нағыз өнер - мәселені шешу үшін өзіңіз білетін техниканы өзгерту екенін түсінген боларсыз. Оңай және Орта деңгейдегі барлық сұрақтарға осы тәсілмен жауап беруге болады.

Барлығыңызға қысқа бағдарламалаудың көшбасшылары қатарына енгіңіз келеді, тек табандылық танытыңыз. Жоғарыда айтып өткенімдей, бұл спорт, сіз оны жасамайынша оны игере алмайсыз. Алға қарай, қысқа конкурсқа қатысып, күшті және әлсіз жақтарыңызды біліп, сағат сілтегенде адреналинді қалай ұстайтындығыңызды біліңіз.

Мүмкіндігінше өз логикаңызға жабысыңыз, ақырында сіз сұрақты шешуге қажет алгоритмге ұқсас нәрсені ойлап табасыз. Сіз оны жай ғана тарқатуыңыз керек. Осы бірнеше әдістер сізге айналадағы кейбір қиын мәселелерді шешуге көмектеседі.

1. Сегмент ағашы
2. Жолдың алгоритмдері
3. Әрекет, Суффикс ағашы, Суффикс массиві.
4. Ауыр жарықтың ыдырауы
5. Графикалық бояу, желі ағыны
6. Sqrt ыдырауы.

Сонымен, осы СС анықтамалықты жүктеп алып, жаңа нәрселерді үйренуден ләззат алыңыз, сонымен бірге уақытты күрделендірмей кодтауды ұмытпаңыз.
Жаңартылған күні
2021 ж. 21 нау.

Дерек қауіпсіздігі

Қауіпсіздік ұғымы әзірлеушілердің деректеріңізді қалай жинап, бөлісетінін түсінуден басталады. Дерек құпиялығы мен қауіпсіздік шаралары қолданбаңыздың пайдаланылуына, аймағыңыз бен жасыңызға байланысты әртүрлі болуы мүмкін. Бұл ақпаратты әзірлеуші ұсынды және оны өзгертіп тұруы мүмкін.
Бұл қолданба осы дерек түрлерін үшінші тараптармен бөлісуі мүмкін
Локация, Жеке ақпарат және тағы 8
Бұл қолданба осы дерек түрлерін жинауы мүмкін
Локация
Дерек шифрланбайды.
Дерек жойылмайды.

Жаңа функциялар

** Algorithms enhanced