Главная Настройка Mobile Контакты NSFW Каталог Пожертвования Купить пасскод Pics Adult Pics API Архив Реквест доски Каталог стикеров Реклама
Доски


[Ответить в тред] Ответить в тред

Check this out!


[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 126 | 1 | 55
Назад Вниз Каталог Обновить

Аноны, я знаю, что тут есть много успешных программистов-олимпиадников. Аноним 29/06/17 Чтв 22:05:13  1013753  
photo.jpg (6Кб, 300x300)
Аноны, я знаю, что тут есть много успешных программистов-олимпиадников. Я тоже программист-олимпиадник, только нихуя не успешный. Начал около 9 месяцев назад, на тот момент я даже не знал, как объявить массив в Паскале. Сейчас программирую на C++, нравится намного больше Паскаля, но суть не в этом. У меня не получается размышлять. Чтобы было понятнее, приведу пример, на задаче.

На ввод подаётся натуральное число N(до 10 000) и далее не более N натуральных чисел(каждое число до 1е9). Нужно найти первое натуральное число, которое нельзя представить суммой этих чисел, причём каждое из данных чисел может входить только 1 раз в сумму.

Пример:
Ввод: 4 1 1 1 5; Вывод: 4:

Так вот, решение этой задачи основывается на том, что если у нас имеется некоторый набор чисел (A1, A2, ..., Ak), такие, что можно представить любое число от 1 до их суммы S суммой некоторых этих чисел, то если мы добавим любое число Ak+1 <= S, то предыдущее свойство сохранится, т.е. можно представить любое число от 1 до их суммы, только уже S + Ak+1, суммой некоторых этих чисел.

И как я должен был САМ до этого дойти? Как я должен был связать сумму набора чисел и то, что если добавить число <= этой суммы, то сохранится это свойство? Я просто не могу, у меня уже сил нету, я не помню, когда я решал реально сложную задачу САМ, у меня мотивация после такого тупо на ноль исходит. Вот я вижу, что некоторые пишут: "Я думал над задачей два дня и всё таки решил, ух, сложная задача". Но я не понимаю, как так можно сидеть и думать? Просто перебирать возможные пути решения? Ну, я перебирал. Первая мысль была просто рекурсию, зафигачить, но увидел, что ограничения не позволяют. Динамику тут тоже не впереть. Были ещё несколько бредовых идей, но они не прошли. И вот что мне делать, если все адекватные, на мой взгляд, варианты закончились? Тупо тыкать пальцем в небо и искать такие закономерности, которые даже после чтения разбора у меня в голове не могут уложиться? Может дело в питании, и мой мозг не получает витаминов, или то, что я каждый день 5+ часов ебусь с этими задачами? Сегодня вот проснулся, сел, прочитал эту задачу, ну а дальше вы знаете. И просто настолько апатичное настроение, весь день тупо проспал. И у меня уже появилось подсознательное отвращение к задачам, я боюсь их решать, потому что думаю, что опять нихера не решу, потрачу полтора часа пытаясь выдумать решение, которое не сработает, потом ещё полтора часа буду разбираться в разборе, а потом я уже как выжатый лимон. А мне ведь область брать надо. И вроде бы нет недостатка в практике, скорее даже переизбыток. С мая начал активно участвовать во всех раундах на Codeforces, в 90% случаев решаю одну задачу, дальше тупо ничего придумать не могу. После контеста, всегда с помощью разбора решаю вторую и третью задачу, причём стараюсь по максимуму разобраться, чтобы все моменты для меня были понятны. Анон, помоги советом или просто поддержи, мне будет очень приятно.
Аноним 29/06/17 Чтв 22:09:36  1013758
>>1013753 (OP)
> как
Мат.индукция
Аноним 29/06/17 Чтв 22:20:46  1013766
>>1013753 (OP)
Прочитай CLRS, а затем дропни все эти олимпиады, все равно от них пользы никакой.
Аноним 29/06/17 Чтв 22:32:24  1013780
В ВУЗе надо учиться, дискретную математику и алгоритмы знать, а еще лучше опыт олимпиад начиная с 9 класса иметь.
Аноним 29/06/17 Чтв 22:57:10  1013791
>>1013780
Я эти олимпиады и дрочу, чтобы в ВУЗ поступить, если я возьму 1 место на области, мне 100 баллов по одному из ЦТшных предметов дадут, да и мне гораздо приятнее Писать код, чем делать физику.
>>1013766
>Прочитай CLRS
Спасибо за совет, часто вижу эту книгу, по ходу действительно годная.
>дропни все эти олимпиады
Читай выше.

Аноним 29/06/17 Чтв 22:57:51  1013792
>>1013758
То есть, мне для задачи выше нужно было знать мат инукцию?
Аноним 29/06/17 Чтв 23:20:19  1013807
>>1013792
http://padaread.com/?book=10311&pg=703
Аноним 29/06/17 Чтв 23:21:42  1013809
>>1013807
фикс
http://padaread.com/?book=10311&pg=16
Аноним 29/06/17 Чтв 23:26:29  1013815
>>1013809
Спасибо, интересная книга
Аноним 29/06/17 Чтв 23:44:39  1013828
>>1013753 (OP)
Нахуя тебе это надо? Реальные проблемы на олимпиадную хуйню не разу не похожи. У реальных проблем нет красивого однозначного решения. В реальных проблемах у тебя всегда есть дохуя времени подумать, не надо задротить, ботать ебанутые алгоритмы наперед. Ты можешь несколько дней гуглить, изучать проблему, сравнивать реализации. Можешь написать куски тупо брутфорсом, не заебываясь, а потом переписать. Самое главное, что олимпиадные задачи тренируют тебя только в решении олимпиадных задач. Чтобы уметь писать компилятор, например, надо писать компиляторы по возрастающей сложности начиная с простых. Чтобы кодить графоний надо начинать с текстурированного кубика, и т.д. Ботая задачи ты развиваешь только нахуй ненужный ИРЛ скилл решения олимпиадных задач, и тем самым тратишь время впустую.
Аноним 30/06/17 Птн 00:01:50  1013841
>>1013828
Я прекрасно понимаю все то, что ты написал, мне не раз повторяли, что при трудоустройстве всем будет похуй, где ты там что занял, но, как я писал выше, олимпиадное программирование даёт мне сто баллов по ЦТ по какому-то предмету, а это облегчает мое поступление в сотни раз(потому что не нужно будет сдавать физику). Естественно, после главной олимпиады я забью болт на эти задачи и буду заниматься действительно полезными вещами.
Аноним 30/06/17 Птн 00:22:23  1013857
>>1013841
ЦТ - это в Беларуси?
А зачем тебе физика, или у вас не сдается информатика?
Аноним 30/06/17 Птн 10:03:05  1013959
>>1013857
> ЦТ - это в Беларуси?
Да
> у вас не сдается информатика?
Да
Аноним 30/06/17 Птн 10:57:48  1013988
>>1013959
Странно, в РФ уже несколько лет как вузы требуют информатику вместо физики на прогерские специальности.
Аноним 30/06/17 Птн 21:57:51  1014350
.
Аноним 30/06/17 Птн 22:57:19  1014375
>>1013828
Двачую этого инженера.
Аноним 30/06/17 Птн 22:59:07  1014376
>>1013988
Что учат на информатике в вузах?
Аноним 01/07/17 Суб 14:11:34  1014563
>>1014376
матан
Аноним 03/07/17 Пнд 12:15:35  1015483
Наверно, лучше всего спросить тут.
Доставьте задачи на быстрое преобразование Фурье, чтобы я мог их сдать и проверить свой быдлокод.
Аноним 03/07/17 Пнд 13:14:10  1015517
>>1013791
> если я возьму 1 место на области, мне 100 баллов по одному из ЦТшных предметов дадут
Давно такие правила? Это же тысячи ебаных стобальников.
Поступал в МГУ в 2008, был первым на области и призером зональной олимпиадки зона Сибирь, шутники, а не то что вы подумали, нихуя мне 100 не поставили.
Аноним 28/07/17 Птн 18:14:39  1033420
Какие есть хорошие соревнования типа Google code jam, в которых стоит поучаствовать?
Не обязательно именно в таком олимпиадном формате.
Аноним 29/07/17 Суб 01:04:41  1033692
>>1013753 (OP)
Чот мне думается, что проще будет выучить школьную физику.
Та же всего три раздела:
эм а равно эф
пэ вэ рано ню эр тэ
и равно у делить на эр

Если ты на способен осознать эту хрень, то и погромист из тебя выйдет так себе.
Аноним 29/07/17 Суб 01:26:19  1033699
>>1015483
#include <math.h> / sin /
#include <stdlib.h> / abs /
#include <assert.h> / assert /
using namespace std
const int N=2^8;
const double omega=1;
const double pi=3.14
double x[N];
for (int i=0, i<N, i++){
y=sin(pi/(N+1)omega i);
};
double freq[N];
complex<double> spectr[N];

fft(&y,&freq,&spectr,N);

double It=0;
double Iw=0;
for (int i=0, i<N, i++){
assert( ( (freq==omega && abs(spectr)>0 ) || (abs(spectr==0) );
It+=y^2;
Iw+=(abs(spectr))^2;
};
assert(It-Iw==0);
Аноним 29/07/17 Суб 01:31:29  1033700
>>1033699
Бля, макба съела звездочки, а я въебал сравнение даблов в сях, но общая идея, надеюсь, ясна: ты >>1015483 идешь на википедию, смотришь все свойства преобразования Фурьи и их и проверяешь.
Аноним 29/07/17 Суб 17:29:15  1033963
>>1013988
Таки нет. Где как. И на факультетах в одном институте тоже различается.
Например, в МЭИ на прогерские специальности одного факультета берут только с физикой. А на прогерские специальности другого берут с информатикой. Причем названия у специальностей одинаковые, но там, кажется, учебная программа различается.
>>1014376
> Что учат на информатике в вузах?
>>1014563
> матан
Вот как раз-таки для ОПа нужно прояснить один очень-очень важный момент.

ОП, читай внимательно: в институте, ЛЮБОМ, даже западном, тебя не будут учить писать софт. Никогда. Там из тебя попытаются сделать специалиста-математика-невротъебаться-архитектора, который составляет алгоритмы там, блядь, рисует блок-схе-е-е-емы, блядь... То есть из тебя на вышке будут пытаться сделать специалиста высокого класса, который... ну... архитектор, да. Там будет очень много матана.
Я не учился по прогерской специальности. Но вот у меня сестра поступила в институт на факультет прикладной математики. Им дали задачи по программированию. Ну, я прошу учил, и подумал, что сейчас я там ей все сделаю. Да, блядь. Я охуел. Вот что-то типа твоих этих олимпиадных задач, только посложнее. Хотя мне даже разницу определить трудно.

И вот со всеми этими задачами программист на своей работе не сталкивается вообще. Так что у тебя два стула: идти на другой факультет(ибо ты отобъешь у себя желание прогать и развиваться вообще, у моего друга так же было, говорит, что институт отбил у него вообще все желание и он прогать нормально не может, но программистом работает) и учить прошу параллельно, а потом фрилансить/вкатываться на работку(в прогеры, наслышан, и без дипломов берут, только знания показать нужно), либо второй стул: сдать все это/задрочить физику поступить, в общем, на специальность прогера и мучиться с этим ебучим матаном. Станешь ты прогером или нет, как показывала практика на других, зависит только от тебя.
Аноним 29/07/17 Суб 17:47:07  1033971
На ксис собрался штоли? Не иди, подумой.
реально хуйня полная, дрочат как не в себя, нихуя не дадут там, а времени на самообразование не будет
Аноним 29/07/17 Суб 18:18:01  1033988
>>1033971
лол на ксисе работаешь со второга курса, приходя в универ 5 раз в семестр сдать лабы, алллё.
Аноним 29/07/17 Суб 18:54:36  1034018
>>1033963
Щас бы в МЭИ идти на прогера.
Аноним 30/07/17 Вск 11:25:17  1034312
>>1013753 (OP)
Кстати! Мальчик то няшный на ОП-пике.
Аноним 30/07/17 Вск 12:30:48  1034326
>>1033963
> учить прошу параллельно, а потом фрилансить/вкатываться на работку
Зачем тогда на вышку поступать?
Аноним 30/07/17 Вск 14:03:45  1034362
>>1034326
на военник копить
Аноним 30/07/17 Вск 16:04:01  1034393
>>1015483
http://codeforces.com/problemset/tags/fft
Аноним 30/07/17 Вск 17:29:56  1034430
>>1034018
Щас бы выбирать, где на прогера учиться.
>>1034326
Ну, а что, думаешь, легко будет учить прошу, работая с 9 утра до 9 вечера в каком-нибудь маке? Лучше прикинься типа лингвистом хочешь стать, чтоб предки деньги давали.
По-другому только если ты в свои 18 уже можешь быть джуном или имеешь навыки, чтоб фрилансить.
Аноним 30/07/17 Вск 18:43:38  1034486
>>1013753 (OP)
Ох, жиза...
Чувак, знай, ты не один. У меня та же проблема. Я искренне желаю тебе удачи!
Аноним 31/07/17 Пнд 06:27:16  1034735
>>1013753 (OP)
>И как я должен был САМ до этого дойти?
Не уверен, но мб опыт в математике?
Аноним 01/08/17 Втр 03:11:19  1035327
>>1013828
не согласен. прелесть олимпиадных задач как раз в след. 2 пунктах (сугубо имхо, конечно):
1) научить анализировать задачу и последовательно идти к решению. легко решать простые алг. задачи, для которых нужно лишь применить существующий алг. гораздо сложнее проанализировать задачу, которая решается не совсем очевидным способом
2) привыкаешь работать под давлением, тк есть временные рамки
Аноним 01/08/17 Втр 05:58:31  1035336
ТЫ ХУЙЕСОС ВОТ И ВСЕ
Аноним 01/08/17 Втр 12:19:38  1035416
>>1035327
>2)
Хуяк хуяк и в продакшен лишь бы к дедлайну успеть? Прямой путь на галеру
Аноним 01/08/17 Втр 22:56:57  1035796
>>1035416
причем тут море. я не говорю, что спортивное программирование единственный ценный опыт. я всего лишь утверждаю, что он помогает развивать вполе полезные скиллы.
Аноним 01/08/17 Втр 23:20:51  1035811
>>1035796
Сука, полезные скилы блядь, мой одногруппник бывший, когда одимпиадки писал, вместо того, что бы сидеть и делать нормальный продуманный алгоритм хуярил чудовищные костыли и выигрывал их. В одной задаче было нужно было указать номер строки (причем смещения этой строки тоже считались) в которую входит заданная строка и он сделал свич/кейс на 40 позиций и руками записывал все варианты смещения строки, это был полный пиздец. Я к олимпиадкам после этого с крайним сомнением отношусь, потому что ты либо ты держишь алгоритм в памяти (хотя полезнее знать, в каких случаях его лучше, а там и нагуглить и встроить запросто) либо высираешь стены говнокода
Аноним 01/08/17 Втр 23:30:04  1035816
>>1035811
строй свою выборку на одном примере, удачи, чо
Аноним 01/08/17 Втр 23:37:40  1035819
>>1035816
Профиты где? Построение архитектуры? Нет времени. Выбор оптимального решения? Нет времени. Ты либо делаешь костыль "лишь бы работало" либо проигрываешь.
Тебе уже выше объяснили, что навыки олимпиадника пригодятся тебе только когда попросят сортировку пузырьком на листочке нарисовать
Аноним 02/08/17 Срд 00:06:07  1035829
>>1035816
За примерами к яндексу и гугле сходи. Они олимпиандников любят.
Аноним 02/08/17 Срд 00:42:53  1035839
>>1013841
>я хочу задротить и заниматься хуйней, тратить время впустую, чтобы пройти тест, который каждый раз становится все легче. А потом через 4 годика пойти работать на завод.
>Но даже мой организм отказывается от этого. Что мне делать?
Если нравится программировать, то занимайся именно этим а не хуетой, а если нет, то и дальше время впустую трать
Аноним 02/08/17 Срд 06:01:37  1035887
>>1013753 (OP)
вот тебе делать нечего
Аноним 02/08/17 Срд 11:12:47  1035992
Двачую ОПа, некоторые задания мало того, что требует неочевидной или крайне изысканной реализации, такещё и имеют какое-то припёзднуто-ебанутное описание, которое умственный инвалид делал, лол
Аноним 02/08/17 Срд 11:21:56  1035999
>>1035829
Конечно любят. Можно тешить их чсв работой в "крутой компании" и за счёт этого платить меньше.
Аноним 02/08/17 Срд 11:33:03  1036003
>>1035999
Лол. Предоставь-ка, пожалуйста, пруфы того, что прогеры из гугла получают меньше, чем другие.
Аноним 27/08/17 Вск 23:28:29  1052310
>>1013753 (OP)
>С мая начал активно участвовать во всех раундах на Codeforces, в 90% случаев решаю одну задачу, дальше тупо ничего придумать не могу.
кекнул с тебя. Div1 бог итт
Аноним 28/08/17 Пнд 03:25:13  1052403
>>1035999
В Гугле, Фейсбуке и Амазоне топовые зарплаты. Больше платят только всякие илитные хедж фонды
Аноним 28/08/17 Пнд 03:33:00  1052407
>>1013791
А причем тут олемпиады по программированию? Тогда тебе надо к олемпиаде по физике готовиться, раз 100 балов по ней хочешь. А даж если не получиться то уже будет легче написать физику.
Аноним 28/08/17 Пнд 04:36:41  1052426
>>1013753 (OP)
>И как я должен был САМ до этого дойти?
ты должен быть знать ответ.

>Но я не понимаю, как так можно сидеть и думать?
Иди зубри матешу, мыслитель.
Аноним 28/08/17 Пнд 12:16:39  1052514
>>1052310
Я часто даже ни одной не могу решить, хотя вкатываюсь в программирование с 2010 года.
>>1052403
>В Гугле, Фейсбуке и Амазоне топовые зарплаты
И чо? Можно макачить сайты на пеашпи и получать огромные для обычного мужика деньги
Аноним 28/08/17 Пнд 12:33:01  1052527
>>1052514
>Можно макачить сайты на пеашпи и получать огромные для обычного мужика деньги
Нет, нельзя.
Аноним 28/08/17 Пнд 13:05:59  1052548
>>1052527
Чо нельзя? За 30-40к можно пеашпи макакой пойти. Чем тебе не деньги? Мужики на заводах хуярят годами за 15к, а тут в два раза больше предлагают, а ему все мало.
Аноним 28/08/17 Пнд 13:20:25  1052558
>>1052514
>Я часто даже ни одной не могу решить, хотя вкатываюсь в программирование с 2010 года.
Ничего удивительно. А ты думал выучишь синтаксис С++ и станешь победителем всех олимпиад? Такое только в аниме бывает.

Вообще не ябу что это за олимпиады по "программированию", но судя по ОП-посту это просто определенные математические задачи, которые нужно уметь распознать. Не зная математику, ты не сможешь решить такую задачу.
Аноним 28/08/17 Пнд 13:28:11  1052566
>>1052558
>Не зная математику, ты не сможешь решить такую задачу
Там надо знать задротские алгоритмы и уметь их реализовывать. По этой хуйне даже книги пишут, там кормен или кнут.
А вообще только долбоебы и задроты изучают всю эту ебанину: какой нормальный человек будет дрочить все эти графы деревья сортировки? Один хуй, почти никому это еще не пригодилось
Аноним 28/08/17 Пнд 15:09:01  1052624
>>1013753 (OP)
>И как я должен был САМ до этого дойти?
ну это обычное дело. дается задача, там хуева туча связей, графики и рисунки, нихуя не ясно, а решение основывается на том, что имеется теорема Сосницкого о произведении радиусов вписанных окружностей.
это обычная хуйня для олимпиадок, там нужна большая теор.подготовка, книжек надо больше читать. найти решение задачи в этой ситуации думанием - это все равно что сделать открытие в этой области за полчаса. просто нереально.
Аноним 28/08/17 Пнд 17:52:03  1052731
>>1052566
Это интересно и поэтому я изучаю это. Я долбаеб?
Аноним 28/08/17 Пнд 18:23:59  1052745

>>1052731
>Я долбаеб?
да
Аноним 28/08/17 Пнд 19:24:47  1052779
>>1052731
Прочти книгу грокаем алгоритмы и забудь об этой хуйне. Иначе скатишься к матанопитухам и те тебя выебут в сраку
Аноним 29/08/17 Втр 02:53:24  1053060
>>1052566
>графы деревья сортировки
это не задротство, а обычный курс информатики
>надо знать задротские алгоритмы
для решения олимпиадных задач вполне хватит 2-3 книги, и базовых алгоритмов будет более чем достаточно. гораздо сложнее проанализировать задачу и понять, какие алгоритмы надо применять
Аноним 29/08/17 Втр 12:24:34  1053210
>>1053060
>это не задротство, а обычный курс информатики
То-то я вижу, какие понятные книги написаны по алгоритмам, обычный курс информатики, похуй, что требуется знание математики за 3 курс.
>хватит 2-3 книги
Ну найди мне такие книги, чтобы я понял там хотя бы 60%, притом что я могу только в школьную математику
Аноним 29/08/17 Втр 15:52:12  1053331
>>1053210
зачем тебе?
бери задачки средней сложности (например TopCoder div 1 250 - div 1 500) решай их, если не сможешь решить за день например, читай едиториал. Очень редко что там какой-то хитровыебнутый алгоритм. Самое сложное что мне попадалось это бипартит матчинг в див1 500, в основном как тебе выше написали - задачи на умение анализировать а не на знание алгоритмов

мимо желтый топкодер
Аноним 29/08/17 Втр 17:31:32  1053362
>>1053331
>зачем тебе?
Чтобы не обсираться на собесах
Аноним 29/08/17 Втр 17:36:45  1053365
>>1053331
>div 1
Лол, я на кф часто не могу решить почти ни одной задачи из div 2, а ты div 1 советуешь
Надо что-нибудь полегче?
Аноним 29/08/17 Втр 17:39:34  1053367
>>1053365
>?
блядь, вопрос не нужен
Аноним 29/08/17 Втр 17:42:15  1053368
>>1013753 (OP)
>И как я должен был САМ до этого дойти?
Никак, надо просто было начать заниматься олимпиадами по математике и программированию с 5-6 класса. Сейчас уже поздно, забудь об олимпиадах
Аноним 29/08/17 Втр 17:58:39  1053377
>>1036003
Насчет гугла не знаю, но в яндексе получают меньше, чем другие
Аноним 29/08/17 Втр 20:40:13  1053513
>>1053365
ну тогда бери див2 250-500
главное чтобы тебе было СЛОЖНО, нет смысла решать тысячи простых задач.

берешь задачку - думаешь бля пиздец хуй решу, думаешь часа 3 например или день, потом открываешь эдиториал, становится все очевидно. Пишешь код (ОБЯЗАТЕЛЬНО) по эдиториалу. Если там какой-то новый для тебя алгоритм - ок идешь читаешь, разбираешься. Потом читаешь чужие решения (там могут быть крутые техники, полезно посмотреть).
Аноним 29/08/17 Втр 20:44:15  1053515
>>1013753 (OP)
а что сложного? обычное дп
Аноним 29/08/17 Втр 20:54:00  1053517
>>1053513
Сука, мне даже самые простые задачи на codeforces даются очень тяжело, даже задачи уровня A почти не решаются.
И что такое эдиториал? Где он?
Аноним 29/08/17 Втр 21:00:49  1053522
>>1053517
ну разбор задач типа, после раунда опубликовывают обычно. Если из архива решаешь там где то ссылка есть сбоку на разбор (на кодефорсес)
Аноним 29/08/17 Втр 21:02:59  1053524
>>1053522
Ну я разборы читаю всегда, но очень часто совсем ничего не понимаю.
Аноним 29/08/17 Втр 21:16:02  1053535
>>1053517
http://codeforces.com/problemset?order=BY_SOLVED_DESC
не благодари
Аноним 29/08/17 Втр 21:48:06  1053559
>>1053535
Вот именно они тяжело даются. Особенно задачи на динамику и жадные алгоритмы. Я пытался понять, что это, но везде натыкался на тонны математики и непонятные объяснения.
Аноним 29/08/17 Втр 21:55:25  1053573
матиматика нинужна кокко-кококо!
Аноним 29/08/17 Втр 21:57:29  1053575
Господа, а есть какой-то смысл решать задачки именно с кф или именно с топкодера? Я решаю на тимусе и вроде норм.
Аноним 29/08/17 Втр 22:08:32  1053598
>>1053575
тимус переодически отваливается. буквально недавно он лежал около 2-3 недель
Аноним 29/08/17 Втр 22:11:14  1053604
>>1053575
На кф есть разборы и там можно смотреть по тестам, где ты обосрался
Аноним 29/08/17 Втр 22:13:14  1053607
>>1053604
в последнее время у меня не показывает тест кейс, из-за которого решение не прошло, если это дорешивание/архив задача
Аноним 29/08/17 Втр 22:18:04  1053612
>>1053607
У меня кстати тоже, надеюсь скоро исправят
Аноним 29/08/17 Втр 23:23:40  1053679
>>1053559
http://codeforces.com/problemset/tags/dp?order=BY_SOLVED_DESC

изи. главное решать с самых простых
Аноним 30/08/17 Срд 20:43:37  1054361
>>1053679
Ну вот я дошел до этой задачи.
http://codeforces.com/problemset/problem/158/B
Я так понял, ее надо решать перебором сочетаний, типо сочетать 3 и 1, 2 и 2, и.т.д, я пытался что-то написать, но ничего не вышло, я потерял суть решения и обосрался.
Решил посмотреть решения на третьем питоне и вот увидел такое:

count = input()
a,b,c,d = map(input().split().count,['1','2','3','4'])
print(c+d + (max(a-c,0) + b*2 + 3)//4 )

Если первые две строчки мне еще понятны, то вот что делается в третьей? Это какая-то формула или что? Может кто-нибудь объяснить?
Аноним 30/08/17 Срд 21:02:53  1054366
Кстати соглашусь с ним >>1035811
Олимпиадный код выглядит ужасающе, надо только посмотреть на такое решение:

/

ID: jbsu321
PROG: test
LANG: C++

/

#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <map>
#include <set>
#include <vector>
#include <stack>
#include <queue>
#include <algorithm>
#include <string>
#include <sstream>
#include <list>
#include <bitset>
#include <ctime>

#define ms(a,b) memset(a, b, sizeof(a))
#define pb(a) push_back(a)
#define CL(a) a.clear()
#define pi (2acos(0))
#define oo 1<<29
#define dd double
#define ll long long
#define ff float
#define MP make_pair
#define EPS 10E-10
#define fr first
#define sc second
#define MAXX 100
#define SZ(a) (int)a.size()
#define all(a) a.begin(),a.end()
#define intlim 2147483648
#define rtintlim 46340
#define llim 9223372036854775808
#define rtllim 3037000499
#define pall pair<ll,ll>
#define padd pair<dd,dd>
#define paii pair<int,int>
#define ull unsigned long long
#define csprint printf("Case %lld: ", C++)
#define bpc __builtin_popcount

#define REP(i,N) for(i=0;i<N;i++)
#define REV(i,N) for(i=N;i>=0;i--)
#define FOR(i,p,k) for (i=p; i<k;i++)


#define ISS istringstream
#define OSS ostringstream
#define VS vector<string>
#define vi vector<int>
#define vd vector<double>
#define vll vector<long long>
#define SII set<int>::iterator
#define SI set<int>
#define mem(a,b) memset(a,b,sizeof(a))
#define fs first
#define sc second
#define pii pair < int , int >

#define EQ(a,b) (fabs(a-b)<ERR)


#define FORE(i,a) for(typeof((a).begin())i=(a).begin();i!=(a).end();i++)

#define round(i,a) i = ( a < 0 ) ? a - 0.5 : a + 0.5;
#define makeint(n,s) istringstream(s)>>n
#define read() freopen("test.txt","r",stdin)

#define icin3(a,b,c) scanf("%lld%lld%lld", &a, &b, &c)
#define icin2(a,b) scanf("%lld%lld", &a, &b)
#define icin1(a) scanf("%lld", &a)

#define dcin3(a,b,c) scanf("%lf%lf%lf",&a,&b,&c)
#define dcin2(a,b) scanf("%lf%lf",&a,&b)
#define dcin1(a) scanf("%lf",&a)

using namespace std;

//ll Pow(ll B,ll P){ ll R=1; while(P>0) {if(P%2==1) R=(R
B);P/=2;B=(BB);}return R;}
int BigMod(ll B,ll P,ll M){ ll R=1; while(P>0) {if(P%2==1){R=(R
B)%M;}P/=2;B=(BB)%M;} return (int)R;} /// (B^P)%M
//ll Gcd(ll a,ll b){ if(b==0)return a; Gcd(b,a%b); return;}

///int rrr[]={1,0,-1,0};int ccc[]={0,1,0,-1}; //4 Direction
///int rrr[]={1,1,0,-1,-1,-1,0,1};int ccc[]={0,1,1,1,0,-1,-1,-1};//8 direction
///int rrr[]={2,1,-1,-2,-2,-1,1,2};int ccc[]={1,2,2,1,-1,-2,-2,-1};//Knight Direction
///int rrr[]={2,1,-1,-2,-1,1};int ccc[]={0,1,1,0,-1,-1}; //Hexagonal Direction
///int month[]={31,28,31,30,31,30,31,31,30,31,30,31}; //month

//ll fact[] = {1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368000,20922789888000,355687428096000,6402373705728000,121645100408832000,2432902008176640000};


ll ncr(ll a, ll b)
{
ll res = 1;
b=max(b,a-b);
for(ll i=b+1 , j=1 ;i<=a ; i++,j++)
res=((res
i)/j);

return res;
}

ll npr(ll a, ll b)
{
ll res = 1;
for(ll i=a-b+1; i<=a; i++)
res=i;

return res;
}

string decimal_to_binary(ll cur)
{
string v;
while(cur)
{
v.pb((cur%2)+'0');
cur/=2;
}
return v;
}

long long lcm(ll x, ll y)
{
ll r;

return ((r/x)
y);
}

ll power(ll a, ll b)
{
ll ans = 1;
for(int i=0; i<b; i++)ans=a;
return ans;
}

//void factorial(ll mm){fact[0]=fact[1]=1;fact[2]=2;for(int i=3; i<1001; i++)fact=(i
fact[i-1])%mm;}
ll vagerMod(ll a, ll b, ll mm){return ((a%mm)(BigMod(b,mm-2,mm)))%mm;}

//9,9+90
2,9+902+9003,9+902+9003+90004,9+902+9003+90004+900005,9+902+9003+90004+900005+9000006,9+902+9003+90004+900005+9000006+90000007,9+902+9003+90004+900005+9000006+90000007+900000008
ll arrToNumberOfDigits[]={9,9+90
2,9+902+9003,9+902+9003+90004,9+902+9003+90004+900005,9+902+9003+90004+900005+9000006,9+902+9003+90004+900005+9000006+90000007,9+902+9003+90004+900005+9000006+90000007+900000008};



//int loop1[]={1,1,1,0,0,-1,-1,-1};
//int loop2[]={-1,0,1,-1,1,1,0,-1};

//int color[1000000];
//int cpp[1000000];

pall MV(ll a, ll b, ll c, ll d){pall aa;aa.fr=c-a;aa.sc=d-b;return aa;}
ll CP(ll a, ll b, ll c, ll d){return (a
d-b*c);}

//void kmp()
//{
// ll k;
// k=par[0]=0;
// for(ll i=1; i<SZ(str); i++)
// {
// while(k>0&&str[k]!=str)k=par[k-1];
// if(str==str[k])k++;
// par=k;
// }
//}

string cut_leading_zero(string a)
{
string s;
int i;
if(a[0]!='0') return a;
REP(i,SZ(a)-1) if(a!='0') break;
FOR(i,i,SZ(a)) s+=a;
return s;
}

ll T, C=1, N;

void process()
{
int n;vector<int>v;
int c1=0, c2=0, c3=0, ans=0;
cin>>n;
for(int i=0; i<n; i++)
{
int x;
cin>>x;
if(x==4)ans++;
else
{
if(x==1)c1++;
if(x==2)c2++;
if(x==3)c3++;
}
}

ans+=(c2/2);//cout<<ans<<endl;
if(c2%2==1)c2=1;else c2=0;
ans+=min(c1,c3);
int m = min(c1,c3);
c1-=m;
c3-=m;//cout<<"---> "<<ans<<" "<<c1<<" "<<c2<<" "<<c3<<endl;
int y=0;
if(c2==1)y=2;
int z = c1+y;
ans+=(z/4);
if(z%4!=0)
{
ans++;
}
ans+=c3;
cout<<ans<<endl;
sort(all(v));
return;
}

int main()
{
// freopen("input.txt","r",stdin);
// freopen("output.txt","w",stdout);

process();
return 0;
}
Аноним 30/08/17 Срд 21:11:40  1054375
>>1054366
>#define dd double
>#define ll long long
>#define ff float
Там ограничения по символам что ли? Зачем это
Аноним 30/08/17 Срд 21:16:58  1054383
>>1054375
Я спрашивал у друга, который пишет так же, говорит, что так быстрее пишется.
Ну а вообще похоже на какой-то пиздец, как до такого можно дойти?
Аноним 30/08/17 Срд 22:25:36  1054421
Индукцию, естественно, нужно знать, это же азы. Я рекомендую тебе порешать https://projecteuler.net/ . Там начинается все с совсем простых задачек, тебе будет по силам, и сложность постепенно нарастает, достигая максимума примерно на 200-й задаче. Так ты постепенно натренируешься решать более сложные задачи. Тут опыт нужен, и терпение чтобы его набраться.
Аноним 30/08/17 Срд 22:29:19  1054423
>>1054383
>так быстрее пишется
Они что, кодят и продумывают решение одновременно? Эти секунды полной записи что то решают?
Аноним 30/08/17 Срд 23:13:34  1054441
>>1054361
Бамп вопросу
Аноним 31/08/17 Чтв 04:57:47  1054583
>>1054441
возле задачи есть подсказка - жадный алгоритм.
подсчитай кол-во групп в зависимости от кол-ва участников в ней. после этого наиболее жадным образом укомплектуй такси: сначала кол-во групп с 4 челами, потом с 3 и 1 - тк сумма 4, то поместятся в одно такси. потом укомплектую двочки и тд

важно не забывать про крание случаи - наприер, 4 4 3 2 2 2 1 1

такси:
(4) (4) (3 + 1) (2 + 2) (2 + 1 + 1)
Аноним 31/08/17 Чтв 04:59:24  1054584
>>1054423
да, решают
Аноним 31/08/17 Чтв 05:09:24  1054586
>>1054583
>(4) (4) (3 + 1) (2 + 2) (2 + 1)
быстрофикс
Аноним 31/08/17 Чтв 13:48:26  1054727
>>1054583
>после этого наиболее жадным образом укомплектуй такси: сначала кол-во групп с 4 челами, потом с 3 и 1 - тк сумма 4, то поместятся в одно такси. потом укомплектую двочки и тд
Мне вот это тяжело дается, я не могу осилить такой большой объем
Аноним 01/09/17 Птн 17:20:38  1055606
Вот начал решать эту задачу:
http://codeforces.com/contest/849/problem/A
И ничего не могу придумать. Вот совсем. Казалось бы, наверное, легкая задача, а я читаю условие и чувствую себя конченным овощем, который ни на что не годен.
Как научиться решать такие задачи, даже самые легкие?
Аноним 01/09/17 Птн 21:18:22  1055837
>>1055606
Там указан тэг greedy. Значит нужно гуглить что такое жадные алгоритмы, читать задачи по этой теме, разборы. Потом возвращаться к этой задаче и, если она стала понятна, решать и чувствовать удовлетворение, либо же снова гуглить, читать разборы аналогичных задач до просветления.
Может я неправ, но обычно так поступаю.
Аноним 02/09/17 Суб 01:44:30  1055968
>>1055606
на самом деле нужно только внимательно прочитать условие и вспомнить четность нечетность.
1) если нужно нечетное кол-во подотрезков с нечетное длинной, то изначальная пос-ть должна иметь нечетную длинну
2) если каждый подотрезок должен начинается и оканчивается с нечетного числа, то и изнач. пос-дь должна первым и посл. числм содержать нечетные числа

но если выполн. 1 и 2 - то сама изнач. пос-ть подходит под решение

собственно нужно проверить на четность длину, первый и последний элементы
Аноним 02/09/17 Суб 05:09:48  1055981
>>1055968
В разборе понятнее написано, лучше бы просто ссылку http://codeforces.com/blog/entry/54233 дал.
Аноним 02/09/17 Суб 14:10:29  1056099
>>1055981
да по факту тоже самое написано, только на инглише
Аноним 02/09/17 Суб 15:47:57  1056144
>>1035819
"Профиты где? Построение архитектуры? Нет времени. Выбор оптимального решения? Нет времени."

Лол, что ты несешь ? Какое время, какая архитектура, какой выбор ? Чаще всего (а особенно у тормоза вроде тебя) будет ситуация, когда ты просто НЕ ЗНАЕШЬ решения, не знаешь, что надо писать и какой должен быть алгоритм. Хотя насчет применения на работе - тут ты близок к истине.

мимо олимпиадник
Аноним 02/09/17 Суб 17:56:33  1056209
>>1056144
>Чаще всего (а особенно у тормоза вроде тебя) будет ситуация, когда ты просто НЕ ЗНАЕШЬ решения, не знаешь, что надо писать и какой должен быть алгоритм.
Ну конечно, я же не решаю манязадачи с ебанутыми решениями и велосипедным кодом с читаемостью из ранних нулевых
Аноним 03/09/17 Вск 02:39:59  1056355
>>1056209
Читаемость у них адекватная и однозначная, если у тебя с этим проблемы - значит недостаточно умен.
А вообще, хуль ты приперся в олимпиадный тред? Иди решай свои серьезные рабочие проблемы. Тут нет понятия велосипедного кода, он должен лишь решать задачу, а не удовлетворять каким-то твоим требованиям. Переменные называют в одну букву просто для удобства (тк человек прекрасно понимает, какая что обозначает), для меня например при перекате в корпоративную разработку было шоком, что их называют СЛОВАМИ. (но вообще для читаемости это конечно правильно). Ты абсолютно не понимаешь, о чем идет речь. Выбор решения ? Выбор, прости, из чего? Если ты нашел хоть одно, это уже ОЧЕНЬ хорошо, и суть решения не может быть костылем, тк ограничения по памяти и по времени накладываются. Это учит думать своей головой, выдумывать что-то свое. Может помочь в будущем, на каком-нибудь серьезном проекте с хайлоадом.
Аноним 03/09/17 Вск 03:26:32  1056361
>>1056355
>Это учит думать своей головой, выдумывать что-то свое
Дальше не читал. Непродуктивная деятельность ничему не учит, потому что ее опыт не может быть применен для решения каких-то продуктивных задач. То есть, грубо говоря, играя в свои олимпиадные игры ты не станешь опытным программистом, ты станешь всего лишь опытным решателем олимпиадных игр
Аноним 03/09/17 Вск 03:28:42  1056363
>>1056361
Что такое в сущности олимпиадная задача - это просто паззл
Аноним 03/09/17 Вск 04:34:00  1056369
>>1056361
С учетом того, что на собеседованиях во всякие гуглы нужно решать всякие задачки олимпиадного типа, участие в олимпиадах может принести много профита.
Аноним 03/09/17 Вск 09:29:38  1056382
Что можно почитать про жадные алгоритмы и динамическое программирование?
Аноним 03/09/17 Вск 09:33:47  1056384
>>1056355
>Читаемость адекватная
>>1054366
Аноним 03/09/17 Вск 09:36:12  1056387
>>1056369
И часто ты в гуглы собеседуешься?
Аноним 03/09/17 Вск 09:39:55  1056390
>>1056382
Бамп вопросу
Аноним 03/09/17 Вск 09:44:45  1056394
>>1056355
Ты находишь первое папавшееся решение и уже считаешь его правильным? Ты не продумываешь другие варианты, ведь у тебя нет времени на них, это очень плохая практика
Ну и
>Нормальная читаемость
>Переменные в одну букву
Аноним 03/09/17 Вск 09:47:59  1056396
>>1056387
В Гугл пока не собеседовался (хотя рекрутеры зазывают), но собеседовался в Майкрософт и Фейсбук
Аноним 03/09/17 Вск 09:50:38  1056397
>>1056396
>собеседовался в Майкрософт и Фейсбук
И чо, тебя взяли или просто посмеялись над тобой?
Аноним 03/09/17 Вск 09:59:25  1056398
>>1056397
В оба места взяли - в МС сейчас работаю, скоро перехожу в Фейсбук. В США, если что.

С учетом того, что такие компании делают рабочие визы, для российских разработчиков тема олимпиадного программирования особенно актуальна.
Аноним 03/09/17 Вск 10:16:32  1056400
>>1056398
Ну тогда подскажи, что почитать по жадным алгоритмам и динамическому программированию?
Аноним 03/09/17 Вск 10:20:58  1056401
>>1056400
Я не знаю, я сам на задачках с leetcode тренировался. Если не мог решить, разбирал чужое решение. Специально не изучал. В олимпиадах я тоже не участвовал, поэтому мне такие задачи даются тяжело, приходится много практиковаться.
Аноним 03/09/17 Вск 14:12:23  1056479
>>1056361
После универа были некоторые проблемы со вкатыванием именно туда, куда я хотел. В итоге плюнул и пошел в веб. Взяли на работу почти сразу, язык на котором теперь пишу (сейчас уже главный на проекте, вся хуйня) я учил перед собеседованием часов 5-6 (с нуля). Олимпиадное прошлое помогло и на собеседовании, и при изучении языка. Угораю с историей вкатывальщиков в веб, которые там годами ищут работу и прилагают титанические усилия. С другой стороны, понимаю, что их природа не шибко одарила, поэтому угорать неправильно.
Это так, пример того, как мне помогли олимпиадки.
Аноним 03/09/17 Вск 14:27:20  1056493
>>1056401
Зашел на литкод и понял, что со мной что-то не так: не смог осилить даже самую первую задачу Two Sum, пизда, что делать?
Аноним 03/09/17 Вск 14:27:55  1056494
Кстати я читал разбор несколько раз, вроде бы понял, но все равно до конца не понимаю.
Аноним 03/09/17 Вск 14:30:11  1056495
>>1013753 (OP)
Я мимо интересующийся, а есть ли программирование без вот этого всего пространственного мышления, чтобы как задрот делать одно и тоже и получать бабосы?
Аноним 03/09/17 Вск 14:40:47  1056507
>>1056495
>пространственного мышления
Что за пространственное мышление? Геометрия что-ли, или что?
Аноним 03/09/17 Вск 14:43:11  1056511
>>1056507
Ну типа там задачи на переливание сосудов, в какой бочке яд и прочая шиза, чтобы не сталкиваться с этим говном и просто вставлять чужой код в консольку или по книжке делать похожее.
Аноним 03/09/17 Вск 14:47:12  1056513
>>1056511
Front end developers use HTML, CSS, and JavaScript to code the website and web app designs created by web designers. The code they write runs inside the user’s browser (as opposed to a back end developer, whose code runs on the web server). Think of it a little like this: the back end developer is like the engineer who designs and creates the systems that make a city work (electricity, water and sewer, zoning, etc.), while the front end developer is the one who lays out the streets and makes sure everything is connected properly so people can live their lives (a simplified analogy, but you get the rough idea). They’re also in charge of making sure that there are no errors or bugs on the front end, as well as making sure that the design appears as it’s supposed to across various platforms and browsers.
Аноним 03/09/17 Вск 14:51:41  1056517
>>1056513
О то что надо, даже гугл перевел while the front end developer is the one who lays out the streets как "В то время как разработчик интерфейса - это тот, кто лежит на улицах"
Аноним 03/09/17 Вск 15:17:15  1056539
>>1056479
Конкретнее
Как это помогло при изучении языка и как это помогло на собесе, только если сказать "я олимпиадник" и решить задачу с яйцами и 100-этажным зданием
Я тоже работу сразу нашел, но никаких олимпиадок не было
Аноним 03/09/17 Вск 17:01:52  1056616
>>1056400
кормен
Аноним 03/09/17 Вск 17:03:51  1056619
>>1056361
>не может быть применен для решения каких-то продуктивных задач
ну да, ты не встречаешь таких задач, значит их нет. справедливо
Аноним 03/09/17 Вск 17:04:01  1056620
>>1056616
дасгупта

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 126 | 1 | 55
Назад Вверх Каталог Обновить

Топ тредов
Избранное