Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
6 / 6 / 5
Регистрация: 29.01.2015
Сообщений: 467

Как научиться олимпиадному программированию

15.03.2016, 07:08. Показов 5759. Ответов 63
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что делать, если я уже более 5 лет пишу код в веб, c++, но, я не умею решать задачи из олимпиад? Какие сайты изучить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.03.2016, 07:08
Ответы с готовыми решениями:

Можно ли научиться программированию???
Здравствуйте, интерисует мнение прогаммистов: как вы считаете, можно ли научиться программировать и стать профессионалом путем большой...

Хочу научиться программированию. Какой язык выбрать?
Какой язык выбрать с учётом того, что я ничего про это не знаю.... :p Хочу научиться писать хотя-бы примитивные проги. :rolleyes: ...

Как научиться проектировать свои приложения?
Доброго времени суток! Недавно начал писать программу для взаимодействия с базой MongoDB (задание в университете), простой аналог...

63
 Аватар для DeadPenguin
66 / 66 / 31
Регистрация: 11.03.2016
Сообщений: 252
15.03.2016, 07:22
Лучший ответ Сообщение было отмечено qwertyyyyyw как решение

Решение

qwertyyyyyw, серьёзно: а оно вам надо? Это, конечно, древний холивар, но сказать что в какой-то реальной жизни вам нужны навыки олимпиадного программирования — покривить душой.

Не по теме:

Хотя, конечно, сейчас выскажутся несколько человек в том смысле что однажды их очень выручила на работе топологическая сортировка, алгоритм Форда—Фалкерсона и прочее паросочетание.

1
6 / 6 / 5
Регистрация: 29.01.2015
Сообщений: 467
15.03.2016, 07:30  [ТС]
DeadPenguin, да), а про алгоритм спасибо)
0
 Аватар для DeadPenguin
66 / 66 / 31
Регистрация: 11.03.2016
Сообщений: 252
15.03.2016, 07:35
Лучший ответ Сообщение было отмечено qwertyyyyyw как решение

Решение

qwertyyyyyw, если вы имели в виду сайты с задачами, то среди русских наверное http://acm.timus.ru/. Из забугорных особо популярен TopСoder — во всяком случае, вставить в резюме ссылочку на свой профиль любят.
1
6 / 6 / 5
Регистрация: 29.01.2015
Сообщений: 467
15.03.2016, 07:47  [ТС]
DeadPenguin, да, я частенько там бываю) читаю туриста)))
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
15.03.2016, 08:15
Лучший ответ Сообщение было отмечено qwertyyyyyw как решение

Решение

Цитата Сообщение от DeadPenguin Посмотреть сообщение
но сказать что в какой-то реальной жизни вам нужны навыки олимпиадного программирования — покривить душой
Не те нынче олимпиады. По нашим временам задачки были такие что алгоритмы там на все случаи жизни. Правда трудными и хитрыми в большинстве своем они казались только для школьного уровня математики. После первого курса практически все стало элементарным. Только с одной олимпиады задачка: есть сад. заданы координаты и урожайность деревьев. требуется: оградить сад изгородью минимальной длины, построить кратчайший путь обхода всех деревьев сторожем, нарисовать все это и динамически отображать движения сторожа при обходе сада. Ну и типа шуточного задания - посчитать урожайность сада.
Ну или та же задача о двух рюкзаках (хотя это уровня городских олимпиад было).
1
Модератор
Эксперт функциональных языков программирования
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,885
15.03.2016, 09:22
Лучший ответ Сообщение было отмечено qwertyyyyyw как решение

Решение

Цитата Сообщение от qwertyyyyyw Посмотреть сообщение
Что делать, если я уже более 5 лет пишу код в веб, c++, но, я не умею решать задачи из олимпиад? Какие сайты изучить?
Изучайте алгоритмы.
Изучите Хаскель и/или Лисп.
1
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
15.03.2016, 11:59
Цитата Сообщение от qwertyyyyyw Посмотреть сообщение
если я уже более 5 лет пишу код в веб,
А почему бы не сконцентрировать внимание на сделать базу готовых решений\ модулей для работы? А не решать тесты из вакуума которые никому не нужны?
Типа модуль 1,3,18,9 и готово ТЗ =). Другое ТЗ другая комбинация модулей.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Лисп
Понятия не имею кому этот бредовый язык нужен и зачем его вообще придумали.
9000скобок...читаймость . Как вспомню лабы в универе чушь полная…
Ассемблер программировал, С++ тоже… но ЛИСП ахах как зачем и за что…
0
Модератор
Эксперт функциональных языков программирования
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,885
15.03.2016, 14:24
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Понятия не имею кому этот бредовый язык нужен и зачем его вообще придумали.
9000скобок...читаймость
Читаемость хорошая. Лично мне скобки, наоборот, нравятся своей лаконичностью (в смысле единообразия грамматических конструкций). Сравните по выразительности С++ и Lisp... а затем сравните размеры компиляторов.

На C# можно (более-менее) писать в функциональном стиле. Но нельзя научиться писать на C# в функциональном стиле, если писать только на C#. Для этого нужно учиться писать на одном из функциональных языков. Лучше всего - на Haskell, так как практически вся литература на эту тему использует Haskell. Но Lisp имеет больше возможностей по использованию кода в качестве данных. Он позволяет в полной мере использовать ещё одну парадигму программирования, которую условно можно назвать "метапрограммирование".

Цитата Сообщение от Excalibur921 Посмотреть сообщение
но ЛИСП ахах как зачем и за что…
В США это основной язык для программирования систем ИИ (в Европе - Пролог). В РФ я ещё не видел вакансий по Lisp/Haskell/Prolog и т.п.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
15.03.2016, 19:46
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Как вспомню лабы в универе чушь полная…
Во во... к этому же списку чуши можно добавить Ada, Modula, Simula, GPSS, Пролог
Цитата Сообщение от Shamil1 Посмотреть сообщение
В США это основной язык для программирования систем ИИ
Сомнительно. А если и есть то так им и надо, пусть мучаются. Лисп это язык управления списками. Причем способ как управления списками так и задания вычислительных формул устарел с появлением Fortran. то что рассказывают о том что Lisp преспособлен для задач ИИ... ну может быть в 1958 так и было, за неимением высокоуровневых языков.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Для этого нужно учиться писать на одном из функциональных языков.
Не несите бред. ФП - мертвая ветка, которая только усложняет разработку. ФП является "тюринговской трясиной" - т.е. вроде и полное по тюрингу но и разработка непродуктивна. Актуальность ФП - там же в 50-ых когда с технической стороны вопроса была удобна и имела достаточные объемы память с однократной стековой записью (перфолента). С появлением RAM актуальность ФП падает до 0.
ООП изучайте. Это сила.

Добавлено через 6 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
Но Lisp имеет больше возможностей по использованию кода в качестве данных.
Ну да. Так к примеру заявляли в свое время создатели Auto Cad и Auto Lisp. Что мол де пользование лиспа дает возможности создания типовых деталей с меняемыми параметрами и пересчетом под них, а без лиспа никак.
Потом появилась ООП-ная, SolidWorks, и лиспом в ней не пахнет, и типовые вообще без строчки кода делать можно. Просто чертятся , а вместо размеров вписываются формулы по которым значения этих размеров вычисляется.

Добавлено через 32 минуты
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Понятия не имею кому этот бредовый язык нужен и зачем его вообще придумали.
1958 год. На ассемблере как бы все писать тоже не фонтан. А компилятор с полноценным транслятором формул суперкомпьютер не потянет. Вот и нашли "золотую середину" так сказать. Все таки высокоуровневые задачи на лиспе было писать удобнее писать чем на голом АСМе, что давало возможность более-менее сконцентрироваться на задаче а не на режимах адресации, типе данных переменной и т.п(даже при том что дерево вычислений разбирать необходимо вручную). Отсюда и репутация языка для ИИ.
Не зря ведь фортран (первыя компилятор с полноценным транслятором формул) на момент своего появления воспринимался как революция в программировании, потому как давал возможность задачей зниматься а не ФП-бредом.
Но уже как бы давно не 50-е, и компиляторы высокоуровневых языков давно телефоны тянут.
0
Модератор
Эксперт функциональных языков программирования
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,885
15.03.2016, 20:50
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Не несите бред. ФП - мертвая ветка, которая только усложняет разработку. ФП является "тюринговской трясиной" - т.е. вроде и полное по тюрингу но и разработка непродуктивна.
То есть, Вы утверждаете, что для любых ООП более продуктивно, чем ФП?
Тогда объясните, каким образом написание в 3 раза больше кода упрощает разработку.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Причем способ как управления списками так и задания вычислительных формул устарел с появлением Fortran. то что рассказывают о том что Lisp преспособлен для задач ИИ... ну может быть в 1958 так и было, за неимением высокоуровневых языков.
Фортран был создан раньше Лиспа.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Отсюда и репутация языка для ИИ.
Ну, да. Эти глупые дядьки с научными степенями ничего не понимают. Надо им у Вас поучиться.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
15.03.2016, 21:15
Цитата Сообщение от Shamil1 Посмотреть сообщение
То есть, Вы утверждаете, что для любых ООП более продуктивно, чем ФП?
Тогда объясните, каким образом написание в 3 раза больше кода упрощает разработку.
Смотри от общего размера задачи. При применении ООП наращивание функционала требует гораздо меньшего количества кода чем создание базового функционала. На больших задачах ООП однозначно и по количеству кода выиграет и по повторному использованию готовых модулей.

Добавлено через 20 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
Фортран был создан раньше Лиспа.
В разных конторах имеющих разную материальную базу примерно в одно и то же время.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Ну, да. Эти глупые дядьки с научными степенями ничего не понимают. Надо им у Вас поучиться.
Естественно. Кстати дядьки с научными степенями по информатике ни когда разработкой софта не занимались, а занимались только околовсяческим бредом, неприменимым на практике. За очень редким исключением тех кто разработал какие либо принципиально новые алгоритмы, что огромная редкость, и то не выше ктн. А задача же программистов в том чтобы адаптировать тот или иной математический метод к решению конкретной задачи (зачастую это делается совместно с дядьками у которых научные степенями по физике, математике, химии и т.д.). Но даже если с такими темами и защищаются, то отнють не по направлению информатика, а по тому направлению для которого делался софт.
0
Модератор
Эксперт функциональных языков программирования
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,885
15.03.2016, 21:15
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Смотри от общего размера задачи.
Большие задачи включают в себя в качестве подзадач задачи меньшего размера.
ООП надо использовать там, где это оправдано.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
15.03.2016, 21:19
Цитата Сообщение от Shamil1 Посмотреть сообщение
что для любых ООП более продуктивно, чем ФП
Да для любых. Структурированный код четко разделенный по функционалу сущностей поведение которых моделируется, горазд проще писать, читать, отлаживать, трассировать чем ФП-ную кашу.

Добавлено через 34 секунды
Цитата Сообщение от Shamil1 Посмотреть сообщение
ООП надо использовать там, где это оправдано.
Оно везде оправдано.

Добавлено через 1 минуту
Цитата Сообщение от Shamil1 Посмотреть сообщение
Большие задачи включают в себя в качестве подзадач задачи меньшего размера
Да. А ООП это способ структурирования этих подзадач по применимости к наборам данных.
0
 Аватар для DeadPenguin
66 / 66 / 31
Регистрация: 11.03.2016
Сообщений: 252
15.03.2016, 23:09
Fulcrum_013, Shamil1, я, конечно, не модератор, но как-то странно вы съехали от вполне чёткого вопроса ТС к холивару «ФП vs ООП».
0
Модератор
Эксперт функциональных языков программирования
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,885
16.03.2016, 09:08
Цитата Сообщение от DeadPenguin Посмотреть сообщение
но как-то странно вы съехали от вполне чёткого вопроса ТС к холивару «ФП vs ООП»
Я строго по теме: обосновываю свою точку зрения, что знание ФП полезно для олимпиадного программирования.


Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Оно везде оправдано.
Чтобы доказать, что это высказывание ложное, достаточно привести один опровергающий пример.
Задача: вычислить максимальное из двух int32 чисел.
Вопрос: какие классы Вы создадите для решения этой задачи, и зачем они нужны?

Вообще говоря, если взять библиотеку стандартных классов C#, то каждый из статических классов является примером, опровергающим это Ваше высказывание.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
16.03.2016, 10:16
Цитата Сообщение от Shamil1 Посмотреть сообщение
Чтобы доказать, что это высказывание ложное, достаточно привести один опровергающий пример.
Ну сейчас начнете сказки рассказывать как вы лямбдой круто весь код параметризируете? Так анонимный недокласс для замыкания создаст компилятор если нужно. А не задумываетесь как он круто начнет тормозить от indirect call на каждой операции сравнения? Даже если и удобно местами то нефиг каллбэк во главу угла ставить. кстати с шаблонами такая параметризация для чудосортировок и поисков разруливается инлайном вместо indirect call на каждом шагу. А вот там где таки индирект нужен то там нужны вызовы виртуальных методов и делегаты полноценных классов, а не куцые лямбда-обрубки.

А какие вы будете лямбды выдумывать для сравнения и арифметики int1024? или матриц 4x4?
0
Модератор
Эксперт функциональных языков программирования
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,885
16.03.2016, 10:30
Fulcrum_013,
Вы так и не ответили на мой вопрос:
"Задача: вычислить максимальное из двух int32 чисел. Вопрос: какие классы Вы создадите для решения этой задачи, и зачем они нужны?"

А Ваш вопрос
1. не в тему (не связан ни с темой топика, ни даже с моими предыдущими высказываниями)
2. лишён смысла (от ответа на него ничего не зависит: даже если я соглашусь, что в каком-то конкретном случае ООП лучше ФП, это не будет служить доказательством того, что "ООП всегда лучше ЯП")
3. некорректен (Вы придумываете мне реплики и тут же начинаете якобы со мной, а на самом деле сами с собой полемизировать)
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
16.03.2016, 11:32
Цитата Сообщение от Shamil1 Посмотреть сообщение
Вопрос: какие классы Вы создадите для решения этой задачи, и зачем они нужны?"
Буду использовать тренарный оператор.

Добавлено через 4 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
что в каком-то конкретном случае ООП лучше ФП
Вот в том то и дело - когда конкретные случаи так ООП лучше. А как околовсяческий бред - так типа ФП нужен не понятно для чего.
0
Модератор
Эксперт функциональных языков программирования
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,885
16.03.2016, 11:54
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Буду использовать тренарный оператор.
Итак, для решения этой задачи Вы не будете использовать ООП.
Вы согласны, что использование ООП для решения данной задачи не оправдано? (И, как следствие, Ваше высказывание "Оно (использование ООП) везде оправдано" является ложным).

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Вот в том то и дело - когда конкретные случаи так ООП лучше.
Вы опять приписываете мне слова, которые я не говорил.
В конкретном случае (см выше) использование ООП хуже.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.03.2016, 11:54
Помогаю со студенческими работами здесь

Как научиться программировать как БОГ?
Всем привет! Прошу советов от опытных программистов данного форума. Дело в том что я уже вдоль и поперек изучил основы программирования...

Задача по олимпиадному программированию
Помогите решить задачу. Я имел идею перебирать все варианты, которое заходит только на 10%. Мост между островами Тысячи и тысячи лет...

Шарики(Задача по олимпиадному программированию)
Решение(не идеально,я знаю): #include <iostream> #include <stdio.h> #include <math.h> using namespace std; int main(){ ...

Ищу людей для подготовки по олимпиадному программированию
Здравствуйте.Заранее прошу прощения у модераторов - я не знаю, куда эту тему выкладывать. Перенесите её, пожалуйста. В чём суть.Я...

Как научиться программированию на С++
Как научиться программированию на С++, как за месяц более менее освоить этот язык.программирования.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru