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

03/04/16 - Набор в модераторы 03.04 по 8.04
26/03/16 - Конкурс: Помоги гомункулу обрести семью!
15/10/15 - Набор в модераторы 15.10 по 17.10



[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 506 | 56 | 65
Назад Вниз Каталог Обновить

Олимпиадных задач тред Аноним 03/03/16 Чтв 14:28:06  674231  
14570044869060.png (4Кб, 204x60)
Пожалуйста объясните алгоритм, не понимаю как сделать.

Школьный бал

Во время проведения школьного бала планируется запустить m одинаковых воздушных шариков. Наполнить их воздухом согласились n старшеклассников с различной силой духа и выносливостью. Известно, что i-ый участник процесса наполняет один шарик воздухом за ai минут, причем каждый раз после надувания bi шариков отдыхает и переводит дух ci минут (i = 1..n). Нужно узнать за какое минимальное время (в минутах) будут надуты все шарики при оптимальной работе всех участников.

Аноним 03/03/16 Чтв 14:36:53  674239
>>674231 (OP)
Оп - хуй. Задача изи.
Аноним 03/03/16 Чтв 14:38:50  674245
>>674239
Объясни, или уходи.
Аноним 03/03/16 Чтв 15:03:13  674261
Bump
Аноним 03/03/16 Чтв 15:03:31  674262
Bump
Аноним 03/03/16 Чтв 15:45:09  674305
>>674231 (OP)
Есть пример входных данных?
Смахивает на задачу на упаковку рюкзака, но сходу не могу понять как решить "жадным алгоритмом".

Лезет в голову всякая чушь, уровня разбивать их на пары чтобы пока один надувает другой отдыхал и наоборот, для пары считать время, сортировать по минимальному времени их и отправлять надувать таких вот.
Аноним 03/03/16 Чтв 15:57:39  674313
>>674305
http://www.e-olymp.com/ru/problems/5227
Аноним 03/03/16 Чтв 16:59:43  674403
>>674231 (OP)
Google: multiple knapsack problem
Аноним 03/03/16 Чтв 17:01:23  674410
>>674245
Пояснять не буду потому что ты:
1. Создал тред.
2. Не привёл пример входных данных.
Аноним 03/03/16 Чтв 17:02:11  674413
>>674305
Жадный алгоритм - это слишком слабо.
Для хороших резлуьтатов тебе нужен Dynamic Programming или Branch And Bound.
Аноним 03/03/16 Чтв 17:04:11  674419
>>674410
https://2ch.hk/pr/res/674231.html#674313
Аноним 03/03/16 Чтв 17:04:48  674421
>>674305
А чего ты так мудришь-то с жадным алгоритмом? Просто выбирай шар который влезает с минимальной затратой времени. Время отдыха учитвай как затрату на последний шар.
Аноним 03/03/16 Чтв 17:05:22  674423
>>674413
Задача же олимпиадная, похуй на качество - главное быстрее сделать же.
Аноним 03/03/16 Чтв 17:08:46  674434
>>674423
Это да. Но ты хочешь слишком хороший результат получить от жадного алгоритма. Я понимаю, что его можно выбрать в качестве первой итерации. Но когда улучшаешь результат лучше выбрать хороший алгоритм, чем пытаться полировать эвристику.
Аноним 03/03/16 Чтв 17:10:25  674438
14570142254830.jpg (114Кб, 1252x1252)
>>674231 (OP)
Как же хочется порешать олимпиадочки...
Но нет, блять, пиши жабаговно, сука, у тебя ипотека ещё на 10 лет.
Аноним 03/03/16 Чтв 17:10:37  674439
>>674434
Один хуй, примера данных нет.
Может там можно въебать полный перебор и не париться.
Аноним 03/03/16 Чтв 17:12:57  674442
>>674439
Кстати да. Ни данных, ни ограничений по времени/памяти.
О чём мы тут вообще разговариваем?
Аноним 03/03/16 Чтв 17:16:45  674451
>>674313
Ты промазал, ковбой:

Задача

Ватсон поставил Рыбке простую задачу – найти сумму чисел меньших N, которые должны делиться либо на A, либо на B, и вывести её остаток от деления на 1000000007 (109 + 7). Помогите Рыбке справиться с этой задачей.

Входные данныеі

В одной строке задано три целых числа N, A и B.

1 ≤ N, A, B < 1018.

Выходные данные

Вывести остаток от деления искомой суммы на 1000000007.
Аноним 03/03/16 Чтв 18:36:50  674548
>>674451
Сорян, эта легитимная http://www.e-olymp.com/ru/problems/7227
Аноним 03/03/16 Чтв 18:38:28  674552
>>674438
Мне 15
Аноним 03/03/16 Чтв 19:19:25  674612
>>674548
(1000 99) вариантов, перебором не получится.
Требуется точное решение - эвристики и локальный поиск сосут.
Остаётся Dynamic Programming и Branch and Bound. Ну или Mixed Integer Programming, если делать по-серьёзке, но это не для олимпиады.
Аноним 03/03/16 Чтв 19:35:01  674626
>>674612
Через Dynamic Programming у меня нихуя не получается доказать какое-то свойство решения m шаров через m-1. Там всё хитро именно из-за пауз.
Через Branch and Bound можно так:
- в качестве нижней границы используй жадную эвристику или какую-нибудь другую эвристику если найдёшь лучше.
- в качестве верхней границы убери эти ёбанные паузы и решай стандартный multiple knapsack problem (это-то, я надеюсь, ты умеешь).
Аноним 03/03/16 Чтв 19:35:58  674628
>>674626
*ёбаные
Аноним 03/03/16 Чтв 19:43:10  674637
>>674626
Естественно, когда будешь считать верхнюю границу, учитывай время, которое уже потрачено на паузы.
Аноним 03/03/16 Чтв 19:48:47  674640
>>674637
>>674626
Кароч, не слушай меня, через Branch and Bound хуйня полная получается.

Можно через Dynamic Programming через такое соотношения:
Решения для k+1 школьников и l шаров - это когда мы хуйнём x шаров новому школьнику + оптимальное решение для k школьнико и l-x шаров.
Дальше, я думаю, таблицу для Dynamic Programming ты построишь сам.
Аноним 03/03/16 Чтв 20:03:03  674657
>>674640
Спасибо попробую
Аноним 03/03/16 Чтв 20:03:57  674659
Блять, почему на этом сайте ни одного языка программирования нет?
Если уже добавили Java, то могли бы и Clojure добавить, я бы им рассказал как нормально бенчмаркать через Grenchman.
И даже Ocaml нет, aleksey ссыт им в ёбыч.
Аноним 03/03/16 Чтв 20:11:24  674662
Помоему тут двоичной кучей (минимизирующей) проще всего. В кучу заносятся школьники, ключами служат момент времени в который они завершат надувать очередной шар. Тоесть изначально все ключи в куче равны ai соотвествующего школьника. Потом сверху кучи извлекается школьник, счетчик шаров увеличивается на один, если нужное количество шаров достигается - ответ это ключ вытянутого школьника. Если шаров не достаточно то школьник возвращается в кучу с ключом увеличеным на ai. Из-за того что школьники должны делать перерывы нужно следить за количеством надутых шаров каждым школьником - тоесть в куче нельзя хранить просто чиcла, а должна хранится структура соответсвующая школьнику с помощью который можно ослеживать сколько шаров надул школьник, и если он достиг предела, то школьник возвращается в кучу с ключом увеличены не на ai, а уже на ai + ci (перерыв плюс время необходимое на надутие очередного шара). Сложность этой хуйни полчается равна количеству шаров умноженому на логарифм школьников.
Это можно улучшить если придумать способ определить достаточно большой момент времени T, которого однако гарантировано не достаточно для того чтобы надуть все шары. Тогда изменяется начальная процедура заполнения кучи. Для каждого школьника высчитывается сколько шаров он надует за время T (это просто), счетчик шаров увеличивается это количество, и в кучу школьник кладется с ключем равным количеству времени которое осталось ему до надувания следующего шара (оно может не быть равно ai - в зависимости от времени T, может быть даже больше, если момент времени Т попал на отдых школьника). А дальше обычное вытаскивание школьников пока не наберется нужное количество шаров. Сложность получается равна "оставшемуся количеству шаров" умноженому на логарифм школьников. Проблема в способе выбора достаточно большого Т - чем оно больше тем быстрее сработает алгоритм, но при этом нельзя превысить ответ. Я думаю нужно нужно отталкиваться от среднего времени затрачиваемого школьником (с учетем отдыха) - и брать немного меньше от полученого.
Аноним 03/03/16 Чтв 20:16:25  674670
>>674662
Ты по сути описываешь жадную эвристику. Она не гарантиурует оптимального результата.
Аноним 03/03/16 Чтв 20:27:05  674684
>>674670
Почему не гарантирует? У школьников есть более оптимальный способ поведения чем начать всем сразу надувать шары, делая перерывы когда выбиваются из сил?
Аноним 03/03/16 Чтв 23:05:37  674957
>>674684
Может быть.
Пример: 3 шара, 3 школьника. Первые 2 надувают за 1 минуту, третий надувает за 100 минут. Оптимально третьего послать нахуй.
Аноним 04/03/16 Птн 01:32:17  675161
>>674957
Ну так и будет. Изначально школьники закинутся в кучу с ключами 1, 1, 100. После того как будет вытащен и закинут первый школьник куча будет 1, 2, 100, после следующего 2, 2, 100, на следующем мы наберем нужное количество шаров и ответ - ключ последнего вытянутого школьника, тоесть 2. Подход с кучей моделирует систему школьников. Давать не оптимальный ответ он может только если моделируемое поведение школьников (все сразу начинают надувать шары, делая перерывы когда выбиваются из сил) не оптимально. Естественно я не утверждаю что это идеальный способ решения, я слаб в динамическом программировании, вполне возможно что с помощью ДП можно решить более эффективно.
Аноним 04/03/16 Птн 08:50:58  675435
Есть 95% процентов робочий код, нужно обьяснить как он работает.
http://ideone.com/oGjprh
Аноним 04/03/16 Птн 10:41:19  675503
>>675161
Вопрос не в эффективности, а в корректности.
Бремя доказательства в данном случае лежит на тебе.
Читать твои телеги мне немного влом, извини. Как только ты сформулировал чёткое и короткое предложение по типу
> У школьников есть более оптимальный способ поведения чем начать всем сразу надувать шары
я тебе сразу привёл контрпирмер.
Сможешь так же чётко и коротко сформулировать доказательство корректности - я проверю.
Аноним 04/03/16 Птн 10:42:33  675505
>>675503
Вообще, какие ограничения по времени и по размеру входных жанных? Оные вообще есть?
Аноним 04/03/16 Птн 10:47:10  675508
>>675435
хз, какой-то жадный алгоритм. На ДП не похоже.
Аноним 04/03/16 Птн 10:48:24  675512
>>675505
Оные извольте обозревать под гиперссылкой http://www.e-olymp.com/ru/problems/7227
Аноним 04/03/16 Птн 11:05:33  675524
>>675503
Ох лол. Иди нахуй.
Аноним 04/03/16 Птн 11:28:19  675541
>>675524
Какие мы важные.
Пишешь длинные телеги, в которых смешиваешь в кучу идею с реализацией и даже не думаешь что-то говорить о корректности.
Потом ждёшь что кто-то это будет читать, утирать тебе сопли и учить тебя нормально формулировть свои мысли, а потом ещё будет искать контрпример для тебя.
Ну ты понял.
Аноним 04/03/16 Птн 11:32:43  675546
>>674231 (OP)
пусть есть один школьник
наилучшая стратегия для него начинать дуть сразу после отдыха
пусть есть 2 школьника
есть два варианта
0 надувают одновременно
1 второй начинает дуть с задержкой
это либо даст задержку, либо не даст, но время не улучшит никак, поэтому на хуй не нужно

в первом слкучае следующее соотношение будет справедливо для двух и большего числа школьников в виду аддитивности

0 посчитаем поток, с которым надувают шарики 1/ai
1 сложим потоки надува sum(1/ai)
2 надуем с совокупным потоком m/(sum(1/ai))
3 учтём время на отдых sum(floor(m/(bi)ci))

время надува будет
m/(sum(ai))+sum(floor(m/(bi)
ci))
Аноним 04/03/16 Птн 12:06:34  675569
>>675512
>Источник Житомирская ХХVIII обласная олимпиада по информатике
Чому не по русскому языку?
Аноним 04/03/16 Птн 12:20:09  675573
>>675569
Кстати это еще что.
Таких организаторов олимпиады в анус без смазки ебать надо, там минимальное время не 8, а 7 минут.
Аноним 04/03/16 Птн 12:34:40  675577
>>675573
Как выглядит решение для 7 минут?
Аноним 04/03/16 Птн 12:36:40  675580
>>675577
Задача кстати элементарная, если шариков больше надувающих. По сути только итерироваться по времени и считать шарики. Сейчас сфоткаю и выложу графический способ решения, по которому все станет понятно (в том числе и обосрамс с 8, а не 7)
Аноним 04/03/16 Птн 12:39:30  675583
>>675580
да ну не может там быть 7 минут
в семь минут уложится всего 3 шара от третьего и 2 от второго (по 6 минут), значит первому остаётся 5 шаров. 5 шаров у него займут 11 минут.
Аноним 04/03/16 Птн 12:39:33  675584
14570843735780.jpg (205Кб, 1920x1080)
Аноним 04/03/16 Птн 12:43:59  675588
>>675584
Ты b и c перепутал: первый должен делать 3хминутные паузы после каждых 2х шаров, а не наоборот.
Аноним 04/03/16 Птн 12:45:50  675590
>>675588
> за ai минут, причем каждый раз после надувания bi шариков отдыхает и переводит дух ci

Таблица по горизонтали, а не по вертикали что ли идет?
Аноним 04/03/16 Птн 12:45:51  675591
>>675580
Доказательство оптимальности не забудь.
Аноним 04/03/16 Птн 12:46:41  675592
>>675590
Да, по горизонтали. Один ряд - описание одного школьника.
Аноним 04/03/16 Птн 12:46:55  675593
>>675592
Щас тогда переделаю.
Аноним 04/03/16 Птн 12:54:07  675597
14570852477800.jpg (196Кб, 1920x1080)
Таки 8.
Но я уже определился с выбором - назовем этот метод "интегрирующим". Для каждого школьника строим числовой ряд - сколько шариков он надувает за текущее время, и суммируем ряды, а дальше ищем искомое время в результирующем ряду.
Аноним 04/03/16 Птн 12:56:28  675598
>>675597
В принципе, на скорую руку могу запилить реализацию на дишке.
Аноним 04/03/16 Птн 14:09:07  675637
>>675598
Доказательство оптимальности не забудь.
Аноним 04/03/16 Птн 14:11:17  675639
Проверяйте:
http://ideone.com/hpdwsV
http://ideone.com/M4Pmh7
Аноним 04/03/16 Птн 14:11:23  675640
>>675637
Это еще зачем, лол?
Аноним 04/03/16 Птн 14:12:14  675641
>>675639
Каким образом?
Эталонной реализации и набора данных то нет.
Аноним 04/03/16 Птн 14:14:11  675644
>>675640
Может ты и задачу рюкзака будешь решать жадной эвристикой и утверждать, что решение оптимально?
Аноним 04/03/16 Птн 14:15:28  675648
>>675641
Бля, придётся в той петушатне зарегаться.
Аноним 04/03/16 Птн 14:16:21  675650
>>675644
А не похуй, оптимально оно, или нет?
Это тебе и доказывать, найди такие наборы данных, которые докажут, что оно неоптимально.

Это олимпиадная задача, проверять будут автоматизированно. Даже если оно неоптимально, но таких наборов данных не будет - никого не ебет.
Аноним 04/03/16 Птн 14:20:27  675657
14570904280310.png (35Кб, 1002x768)
>>675648
Как-то так
Аноним 04/03/16 Птн 14:21:18  675659
>>675650
Ясно.
нахуй из математики - это вон туда
Аноним 04/03/16 Птн 14:22:29  675662
>>675659
Ты даун что ли? Мы тут не в математике, теоретическая хуйня не ебет никого. Должно сойтись по тестам за отведенное время - как то так.
Аноним 04/03/16 Птн 14:23:44  675664
>>675657
Для той хуйни только на жабе писать надо?
Аноним 04/03/16 Птн 14:24:52  675666
>>675639
Правильно,теперь на паскаль перепишу
Аноним 04/03/16 Птн 14:28:43  675670
14570909235930.png (6Кб, 957x231)
>>675664
Нет, можно даже Хачкиль.
Аноним 04/03/16 Птн 14:29:21  675674
>>675670
Суки ебаные, дишечки нет.
Набор данных, на котором проверяют - выдрать можно?
Аноним 04/03/16 Птн 14:32:00  675678
>>675674
Хуй знает, не пробовал. Stdout твоей программы не показывают, как по другому выдирать - я не знаю.
Аноним 04/03/16 Птн 14:36:52  675682
>>675662
Ну может ты в чём-то прав.
Численные эксперименты в математике имеют место, и зачастую опережают доказательства.
Аноним 04/03/16 Птн 14:38:49  675685
>>675682
А то. Ты же пользуешься классической механикой, и тебя не ебет, что она неправильная.
Так как в своей жизни с такими скоростями или прочими условиями, на которых это будет ощутимо - один хуй не столкнешься.
Аноним 04/03/16 Птн 14:42:18  675688
>>675678
Кодируй номерами тестов
Аноним 04/03/16 Птн 14:43:54  675689
>>675688
номер теста - 1 бит
прошёл - единица
не прошёл - нолик

В первом прогоне выкидывает первый бит тестовых данных
во втором - второй
и т д
Аноним 04/03/16 Птн 14:45:30  675690
>номер теста - 1 бит
вернее номер теста - это номер теста
в исходнике захардкоденное число, инкрементируемое
программа смотрит соответствующий бит входных данных, если бит один, то решает тест, если 0 - то фейлит
Аноним 04/03/16 Птн 14:48:17  675691
>>675689
По-моему это сложнее, чем решить саму задачу.
Аноним 04/03/16 Птн 14:49:17  675693
>>675691
Но он же её уже решил, теперь он хочет выдрать условия тестов чтобы выложить в инет.
Аноним 04/03/16 Птн 14:53:52  675700
>>675693
Больший bandwidth можно получить, если использовать память.
Также это не потребует решения теста.
Аноним 04/03/16 Птн 14:55:26  675702
Маллоком выделяем памяти столько, сколько нужно.
Предварительно прогоняем программу, не выделяющую кодирующей памяти вообще, чтобы иметь базовое значение
Аноним 04/03/16 Птн 14:56:31  675704
А вот время хер заюзаешь, оно обычно заблокированно. но если разблокированно, то действуем аналогично.

Для большей эффективности можно добавить zlib
Аноним 04/03/16 Птн 14:59:53  675707
если они станут рандомизировать размер кучи, то его опять же можно легко узнать маллоком и внести поправку
Аноним 04/03/16 Птн 15:04:22  675711
но вообще это всё не имеет смысла, так как большая часть тестов на олимпиадах - случайная
Аноним 04/03/16 Птн 15:07:27  675716
>>675711
Если она будет случайная - одно и то же решение на разных наборах может быть правильным и неправильным.
Аноним 04/03/16 Птн 15:11:38  675724
>>675716
как будто что-то плохое. Важно ведь общее число пройденных тестов.
Зачем они вообще показывают номера тестов, если данные от них не выдают, не понятно.
Аноним 04/03/16 Птн 15:12:31  675725
>>675724
Интересно, к ним можно загрузить тест с форк-бомбой, лол?
Аноним 04/03/16 Птн 15:13:40  675727
>>675716
И вообще, может тесты детерминированно случайные. То есть у каждого игрока есть случайный seed, на основе которого генерится тестовый набор, фиксированный для каждого игрока.

Кстати, seed можно не генерить для каждой задачи, а выводить с помощью хеш-функции
Аноним 04/03/16 Птн 15:14:38  675729
>>675725
обычно такие вызовы запрещены. Как и вызовы работы с фс кроме stdin/stdout, и прочие системные вызовы
Аноним 04/03/16 Птн 15:14:45  675730
>>675727
Нахрена что то хранить?
Со статическими тестами проще всего, так нафига лишние выебоны.
Аноним 04/03/16 Птн 15:17:11  675734
>>675730
при выводе с помощью хеш-функции не нужно ничего кроме данных аккаунта и данных задачи, которые хранятся и так
Аноним 04/03/16 Птн 15:18:27  675737
>>675734
Проверять решения разными наборами - нечестно, вот и все.
Аноним 04/03/16 Птн 15:18:56  675739
>>675730
>Со статическими тестами проще всего, так нафига лишние выебоны.

Чтобы нельзя было наплевать на ограничения времени и памяти. Можно неэффективным алгоритмом предпросчитать у себя на cpu/видеокарте/fpga.
Аноним 04/03/16 Птн 15:20:37  675741
>>675739
Каким образом? Допустим набор статический - для всех одинаковый, но погромист извне все равно его не знает.
Аноним 04/03/16 Птн 15:21:53  675742
>>675737
Я помню мне препод мануал выдал по проведению олимпиад, там было чёрным по белому написано что используются 4 группы тестов: выданные на руки с задачей, граничные случаи, рандомизированные и специально спроектированные жури с целью завалить некоторые решения.
Аноним 04/03/16 Птн 15:23:13  675745
>>675742
>и специально спроектированные жури с целью завалить некоторые решения.
Это чтоб свои знакомые выиграли, когда оешениям других участников можно подосрать?
Аноним 04/03/16 Птн 15:25:15  675747
>>675745
хз
Аноним 04/03/16 Птн 15:27:15  675751
>>675747
Я помню, как лет 8 назад после школки возлагал надежды на коколимпиадку вузиковскую. В методичке были примеры заданий и написано что отводится час. По факту - решение требовало не алгоритма, а формулки из матстатистики которую давали на 3м курсе, писать заставили на листке и дали полчаса.

Учитывая, что призом был ноут - специально суки под знакомых заточили, пидоры.
Аноним 04/03/16 Птн 15:27:39  675754
>>675745
Нет, это чтобы жиды выигравали, а русские нет.
Аноним 04/03/16 Птн 15:29:32  675756
>>675745
ну он дал рецепт обхода - рандомизировать входные данные
Аноним 04/03/16 Птн 15:31:44  675759
>>675751
ладно, я вот геометрию понял только тогда, когда в вузе курс линейной алгебры прошёл, а до этого мне это казалось какой-то хуйнёй

Все эти олимпиады решаются знанием нескольких вузовских курсов
Аноним 04/03/16 Птн 15:33:43  675761
>>675759
Я серьезно - уже на 3м курсе понял, как вспомнил.
Требовалась там какая та формула из комбинаторики, сцуко - и все, никакого алгоритма.
А я в 11 классе такую знать никак не мог.
Аноним 04/03/16 Птн 15:47:04  675775
>>675759
Если конкретно, то курсом "Дискретная оптимизация".
Но в рашкинских вузах такого не бывает, насколько я знаю.
Аноним 04/03/16 Птн 15:59:15  675793
Кстати, интересный вопрос - а там оценивается время выполнения проги?
В крестах то некоторые вычисления можно в compile-time упрятать.
Аноним 04/03/16 Птн 15:59:32  675794
>>675793
сега приклеилась
Аноним 04/03/16 Птн 16:00:55  675796
>>675793
В компайл-тайме ты не знаешь входных данных.
Аноним 04/03/16 Птн 16:01:59  675798
>>675745
Чтобы частные случаи и эвристику поломать. Бывает, что неправильный алгоритм правильно работает на некотором подмножестве данных.
Аноним 04/03/16 Птн 16:02:55  675800
>>675798
Делал на частных случаях и эвристике, прокатывало.
Аноним 04/03/16 Птн 16:08:17  675809
>>675800
Везучий засранец.
Аноним 04/03/16 Птн 16:10:25  675813
>>675809
Зато тупанул на другой хуйне, вышел уже из кабинета - тут в голову пришло решение, а обратно зайти зассал.
Аноним 04/03/16 Птн 16:53:13  675862
14570995940170.png (58Кб, 1092x863)
А вот и мое "интегральное" решение. Простое как три копейки.
В душе не ебу, "оптимальное" ли оно, но все тесты проходит.
http://ideone.com/5uGC5x
Аноним 04/03/16 Птн 16:54:11  675864
чем они там блядь с# компилируют, на dotnetfiddle работает, а у них с этим judge c# меня нахуй шлёт с "Ошибка выполнения"
Аноним 04/03/16 Птн 16:55:24  675865
>>675862
Алсо загрузилось только со второго раза - эта олимпиадная ебань сагрилась на кириллицу в комментариях.
Аноним 04/03/16 Птн 17:53:47  675913
проверьте https://ideone.com/rB02rY
Аноним 04/03/16 Птн 17:56:42  675918
14571034027180.png (54Кб, 1170x798)
>>675913
Отправил за тебя твое решение.
Говно короче.
Аноним 04/03/16 Птн 18:18:34  675945
>>675913
очень простой тест-кейс дополнительный
просто замени 10 3 на 10 4
и следующей строкой добавь "10 1 1" например
твой вариант уже валится
Аноним 04/03/16 Птн 18:18:56  675947
>>675862
Твоё определённо лучше, чем ДП.
Но оно специфично для задачи. И ещё нужно хотя-бы самого себя убедить в его корректности (что ты сделал с помощью рисунка, это очень хороший метод).
А у меня, так сказать, профессиональная деформация личности, после изучения методов дискретной оптимизации я всё делаю стандартными методами. В данном случае интуиция меня подвела, т.к. я думал что задача связана с задачей рюкзака, в которой эвристики не прокатывают.
Аноним 04/03/16 Птн 18:42:29  675988
>>675945
и где он валится?
https://ideone.com/2mhQFp
Аноним 04/03/16 Птн 18:46:33  675996
>>675988
>следующей строкой
>следующей строкой
>следующей строкой
>следующей строкой
>следующей строкой
Аноним 04/03/16 Птн 18:49:57  676001
>>675988
вот так действительно валится
https://ideone.com/B5dT1f
Аноним 04/03/16 Птн 19:07:31  676040
>>675503
Алгоритм X - каждый сосницкий начинает надувать шары как только может и продолжает до тех пор, пока не устанет.
Допустим есть алгоритм Y, позволяющий за то же время надуть больше шаров, чем при использовании алгоритма X.
Общее количество надутых шаров складывается из шаров надутых каждым сосницким. Значит в алгоритме Y некоторые сосницкие надувают больше шаров, чем в алгоритме X. А это невозможно. Уж это-то объяснять не надо?
Аноним 04/03/16 Птн 19:20:43  676073
>>676040
в оптимальном некоторые сосницкие шары не трогают вообще. Потому что может быть что у одного из них ампутировали 1.5 лёгкого и один шар он надувает теперь за 1000 минут.
>каждый сосницкий начинает надувать шары
будет работать только если твой алгоритм умеет отнимать обслюнявленные шары у медленно-дующих инвалидов
Аноним 04/03/16 Птн 19:23:00  676084
>>676073
Но ведь нет ограничения по количеству шариков.
Сказано - нужно надуть n шариков. А сколько там резины валяется - не сказано.

Ты сам себе ограничения придумываешь.
Аноним 04/03/16 Птн 19:30:00  676123
>>676084
Верно. Но даже если бы лишних шаров не было формула никак не поменялась бы.
От нас не требуется составлять расписание надувания шаров, так что мы можем предположить, что вокруг сосницких бегает препод и оптимальным образом распределяет шары. При таком раскладе ситуация ровно такая же что и с лишними шарами.
Аноним 04/03/16 Птн 19:31:46  676135
>>676123
В любом случае, у нас самый простой вариант - дуют все участники, количество сдутых шаров безлимитно.

Так что те, кто хуево дует, как минимум не сделают хуже и никак не влияют на время.
Аноним 04/03/16 Птн 20:28:07  676270
14571124874050.jpg (119Кб, 960x680)
Обоссал всех в этом треде кроме себя.
https://ideone.com/Wfj6H2
Аноним 04/03/16 Птн 20:36:37  676286
14571129973200.png (60Кб, 924x702)
>>676270
> кроме себя
Не, на себя ты тоже норм наляпал. Учитывая что выше был анон с соточкой то можно считать что ты себя с головы до ног обоссал.
Аноним 04/03/16 Птн 20:38:02  676289
>>676286
Два анона с соточкой было же.
Аноним 04/03/16 Птн 20:47:03  676301
>>676286
Ок, разобассываю.
Аноним 04/03/16 Птн 21:01:38  676321
>>674231 (OP)
Назовём надувание bi шариков + отдых одним циклом, время выполнения которого ti=ai*bi+ci
Тогда поделив bi/ti=perfi мы найдём среднюю производительность perfi каждого школьника по времени. Найдём отношение каждого perfi к максимальному max_perf из них и округлив вперёд до целых, мы найдём их соотношения rel_perfi = round(max_perf/perfi) . После чего кидаем каждому школьнику, начиная с самых производительных, количество шакриков, равное rel_perfi
Аноним 04/03/16 Птн 21:05:08  676332
>>676321
Кинул свои шарики тебе за щёку.
Аноним 04/03/16 Птн 21:08:43  676342
>>676332
не вовремя, он уже вдул 10, и он отдыхает 5 минут.
Аноним 04/03/16 Птн 21:13:27  676352
14571152077310.png (18Кб, 910x250)
Я вернулся со 100%, чтобы переобоссать вас!
https://ideone.com/Wfj6H2
>>676270-кун
Аноним 04/03/16 Птн 21:19:53  676359
С этой уже определились.
Какую следующей солвить будем?
Аноним 04/03/16 Птн 22:17:09  676484
>>676359
Выбирай. Только посложнее что-нибудь.
Аноним 07/03/16 Пнд 12:00:07  679203
>>676352
Алгоритм уже не так красиво выглядит, как у >>675862-куна
Аноним 07/03/16 Пнд 12:48:48  679240
>>679203
У него тупо цикл, а у меня бинарный поиск, понятно что кода побольше.
Ну так зато у него сложность O(nT), а у меня O(nlog(T)), где n - число школьников, а T - требуемое время.
Аноним 07/03/16 Пнд 15:34:20  679322
>>679240
Это как дергать гланды автогеном через анальное отверстие. В рассматриваемой задаче нахуй не нужно, на скорость не влияет, а на простоту понимания - еще как.
Аноним 07/03/16 Пнд 23:29:11  679893
>>679322
Идёт девушка, видит - парень косит траву в противогазе:
- Ты что, с ума сошёл - зачем противогаз надел?
- Я комсомолец - не могу без трудностей...
- Кончай хуйней страдать, пошли лучше потрахаемся.
- Хорошо, но только стоя и в гамаке...
Аноним 08/03/16 Втр 13:39:31  680226
Ну что же:
http://www.e-olymp.com/ru/problems/32
Мы предлагаем Вам похожую игру, в которой участвуют белая пешка и черный конь. Ходы делаются в соответствии с общепринятыми шахматными правилами. Белые ходят первыми. Белые побеждают, если они смогли провести свою пешку в ферзи и следующим своим ходом черный конь не может уничтожить ферзя. Партия заканчивается вничью, если очередь хода за белыми, но пешка не может продвинуться вперед. Если конь сумел побить пешку или ферзя, то выигрывают черные. Требуется выяснить исход партии при наилучшей игре с обеих сторон.

Вопрос таков - что есть "наилучшая игра с обоих сторон", и как она определяется?
В голову приходит разве что завершение игры через максимально долгое время. Правда, если проигравший так долго мог защищаться - выходит игра победившего была неоптимальной?
Аноним 08/03/16 Втр 13:48:29  680234
>>680226
Хотя, походу наоборот - у коня дохуя способов походить, а у пешки - только вперед. Значит, оптимальный - думаю это когда конь натягивает пешку за минимально короткое время (поскольку пешка не может ходить неоптимально, у нее один путь)
Аноним 08/03/16 Втр 14:01:56  680243
>>680234
> натягивает пешку за минимально короткое время
Именно минимальность времени в данном случае не важно, так как нужно сообщить результат, а не количество ходов. Тоесть для коня "наилучшей игрой" будет такая последовательность ходов при которой он берет пешку, если у него такая возможность есть. С ходами пешки не совсем ясно. Свой первый ход пешка может сделать как на одну, так и на две клетки. Следовательно для своей "наилучшей игры" пешка должна просчитать результат при первом ходе на одну клетку, и при первом ходе на две клетки. И выбрать тот вариант при котором она выигрывает. Если такого нет, то разницы что выбирать нет. Выбор есть только если пешка начинает со своей начальной по правилам позиции (второй ряд).
Аноним 08/03/16 Втр 14:05:56  680248
>>680243
Я настаиваю на минимальности. Именно игра, которая закончилась минимально быстро - была оптимальной, кмк, так как конь может ее затянуть и просрать в итоге.

Непонятно другое - на самом сайтеце есть два варианта развития событий для g3-a1, если пешка ходит на два хода - то ничья, а если один - то съедается конем. Казалось бы, раз пешка может сыграть вничью - то это и есть вариант когда оба играют оптимально. Но с какого то хуя там в результате программы стоит -1 - если выигрывают черные. Как это понимать?
Аноним 08/03/16 Втр 14:20:57  680268
>>680248
Хотя, ашибочка. Анимашка с примером для пешки на g2, а там где пример входа и выхода - g3, все верно. А для g2 видимо оптимальна именно ничья.
Аноним 08/03/16 Втр 15:17:42  680317
>>680226
Что делать, если пешка изначально на 8-й линии?
Аноним 08/03/16 Втр 15:18:54  680318
>>680317
Очевидно, пешка побеждает.
Аноним 08/03/16 Втр 15:21:32  680323
>>680318
Хотя, точнее - побеждает, если не находится под ударом коня на следующем ходу.
Аноним 08/03/16 Втр 15:30:40  680338
Сука, какое же говно эта ваша джава.
Думаю, как организовать список результатов - нету в этой блядине ни Pair, ни Tuple.
Аноним 08/03/16 Втр 15:39:10  680350
>>680338
http://ideone.com/ntTCDt
Аноним 08/03/16 Втр 15:41:22  680353
>>680350
А где ее тип то задается? Я ожидал что то вроде Pair<int, double>.
Мне вообще то список такой поеботы нужен. Впрочем, я уже плюнул и на кресты перешел.
Аноним 08/03/16 Втр 16:11:20  680393
14574426809610.jpg (15Кб, 919x232)
>>680226
CYKA BLYAT, ну и как это дебажить?
Аноним 08/03/16 Втр 16:12:19  680394
Тут такой интересный вопрос - а может ли пешка перепрыгнуть коня, если она стоит на начальной позиции?
Аноним 08/03/16 Втр 16:19:03  680411
14574431440030.webm webm file (268Кб, 320x182, 00:00:10)
>>680394
Нет конечно.
Аноним 08/03/16 Втр 16:22:15  680418
>>680411
Ты не понел - если конь стоит на следующей, а пешка имеет право в первый раз походить на 2 клетки?
Аноним 08/03/16 Втр 16:26:37  680425
>>680418
> имеет право в первый раз походить на 2 клетки
Только если обе клетки пустые. Пешка не может перепрыгивать фигуры.
Аноним 08/03/16 Втр 16:27:17  680427
>>680425
Ну и заебок, это упрощает дело - меньше лишней поеботины обрабатывать.
Аноним 08/03/16 Втр 17:37:24  680535
Посоны, вроде сделал - кроме одного.
Как там вход считать? На крестах?
Ну как эту ебань g3 и a1 получить?
Аноним 08/03/16 Втр 17:47:52  680554
14574484727610.png (52Кб, 1125x824)
https://ideone.com/Miu6QC
Подскажите, где я проебался?
Аноним 08/03/16 Втр 17:50:06  680560
>>680535
Читай в строку. Потом проще всего будет сделать str[0] - 'a' и str[1] - '0' - получишь индексы. Это не сильно надежно, но для олимпиадки пойдет.
Аноним 08/03/16 Втр 17:50:54  680561
>>680560
Да я так уже и сделал.
Только блять, ищу что не так.
Аноним 08/03/16 Втр 17:50:57  680562
>>680554
Родился хохлом.
Аноним 08/03/16 Втр 17:52:18  680566
>>680562
В загон, быдло.
Аноним 08/03/16 Втр 17:55:54  680570
14574489545300.jpg (100Кб, 1019x792)
14574489545321.jpg (47Кб, 1079x737)
>>680566
Не стукай, братишка.
Аноним 08/03/16 Втр 17:58:21  680573
>>680570
Но я нихуя не ukraine, лол.
Хотя и родился в Харькове. Но тогда был еще совок.
Аноним 08/03/16 Втр 18:05:25  680588
>>680561
> так уже и сделал
У тебя там какая-то неочевидная хуита. Я бы работал не с координатами фигур, а с растоянием между ними (отдельно растояние по вертикали и по горизонтали) высчитаное из их начальных позиций. Дальше, пешка на каждом своем ходу (кроме первого) увеличивает растояние по вертикали на один. А конь может увеличить/уменьшить растояние по вертикали или горизонтали на 2 и одновременно увеличить или уменьшить растояние по другой координате на 1. Если растояние стало 0 по обоим координатам то конь победил, если один по вертикали перед ходом белых то ничья. Ну и нужно сначала высчитать ограничение по ходам, связаное с тем что пешка дойдет до верха.
Аноним 08/03/16 Втр 18:07:23  680593
>>680570
там по умолчанию украха ставится
Аноним 08/03/16 Втр 18:08:07  680595
>>680573
Не важно.
Я тоже застрял на 97% верных ответов. Хочешь сгенерю ответы своей прогой для всех пар координат?
Аноним 08/03/16 Втр 18:09:03  680598
>>680588
Я нихуя не понял.
>У тебя там какая-то неочевидная хуита.
У меня все очевидно - просчитываются абсолютно все варианты (их 6 штук примерно получается), потом они сортируются (сперва по номеру хода, потом по позиции), а потом берется первый из списка.

Я думаю, что у меня проеб с сортировкой, т.е. с критерием "оптимальной игры обоих сторон"
Аноним 08/03/16 Втр 18:10:04  680599
>>680595
Дохуя пар координат получается.
Аноним 08/03/16 Втр 18:10:39  680601
>>680599
64*63 всего же
Аноним 08/03/16 Втр 18:12:18  680603
>>680601
Блжад, если бы можно было из этой украинской ебани выдрать наборы данных, вызывающие неправильное поведение...

Я надеюсь, там вход валидировать не нужно? Там, регистр к маленькому приводить?
Аноним 08/03/16 Втр 18:14:28  680606
>>680603
Входные данные скорее всего верные.
Наборы данных выдрать не проблема, но не хочу этим заниматься т.к. читерство.
Аноним 08/03/16 Втр 18:23:07  680617
14574505877440.png (34Кб, 1074x530)
>>680606
Определенно, дело скорее всего в критерии "оптимальности".

Подшаманил сравнение на
return (a.second != b.second) ? a.first < b.first : a.first < b.first;

Но чего то еще не хватает...
Аноним 08/03/16 Втр 18:24:11  680620
>>674231 (OP)
Ебать, я даже условия не понимаю. Как вы это решаете, школьники?
Аноним 08/03/16 Втр 18:59:03  680683
>>675862
Идея понятна, но я не врубаюсь почему это работает
Аноним 08/03/16 Втр 19:03:36  680697
>>680683
Я же выше с рисунками даже блять логику показал, не?
Аноним 08/03/16 Втр 19:38:05  680746
>>680697
Просто мне сначала показалось что это слишком наивное решение, которое завалится на каких ни будь изоощерённых тестах
Аноним 08/03/16 Втр 19:38:44  680748
>>680746
Ну, не завалилось же?
Аноним 08/03/16 Втр 21:56:13  680884
>>680226
Пришлось делать двумя разными способами чтобы отловить ошибки. Но я сделал это! https://ideone.com/V5zFoc
Что, соснули, да? А? А?
Ха-ха-ха, ещё как соснули! ( ͡° ͜ʖ ͡°)

Пользуясь случаем передаю привет маме.
Аноним 09/03/16 Срд 00:33:40  681001
Этот кусок говна с тестами - неправильный.
Конкретный пример - b6 c7. 30й тест ожидает что победят белые, хотя - хуй там плавал.
b6b7 c7a6
b7b8 a6b8 - только пешка прорывается в ферзи, как следующим же ходом ее срезает конь
>Белые побеждают, если они смогли провести свою пешку в ферзи и следующим своим ходом черный конь не может уничтожить ферзя.
Аноним 09/03/16 Срд 00:35:22  681004
>>681001
Кстати, раз пошла такая пьянка - я выдрал тесты, входные данные и результат. Они таки статические:

g3-a1 = -1
a7-a6 = 1
a7-a5 = 1
a7-a1 = 1
a7-b5 = 1
a7-c6 = 1
a7-b8 = 1
a7-c8 = 1
a7-d6 = 1
b7-a8 = 1
b7-c8 = 1
b7-b6 = 1
b7-a5 = 1
b7-c5 = 1
b7-c6 = -1
b7-a6 = -1
b7-d7 = -1
b7-g2 = 1
b7-d3 = 1
b7-d4 = 1
b6-a6 = 0.5
b6-c6 = 0.5
b6-d7 = 0.5
b6-b7 = 0.5
b6-c5 = -1
b6-d6 = -1
b6-d8 = -1
b6-a5 = -1
b6-b8 = -1
b6-c7 = 1
b6-a7 = 1
b6-a8 = 1
b6-c8 = 1
b5-a4 = -1
b5-c4 = -1
b5-d5 = -1
b5-d7 = -1
b5-c8 = -1
b5-a8 = -1
b5-b7 = -1
b5-e4 = -1
b5-f5 = -1
b5-e6 = -1
b5-h7 = -1
b5-g8 = -1
b5-g4 = -1
b5-h5 = -1
b5-d3 = -1
b5-b3 = -1
b5-c2 = -1
b5-a2 = -1
b5-g2 = 1
b5-h3 = 1
b5-d4 = 0.5
b5-d6 = 0.5
b5-b4 = 0.5
b5-a5 = 0.5
b5-e5 = 0.5
b5-e7 = 0.5
b5-d8 = 0.5
a5-b6 = 1
a5-c8 = 0.5
a5-c6 = 0.5
a5-b5 = 0.5
a5-a7 = -1
a5-a8 = 0.5
a5-a6 = 0.5
a5-h1 = 1
a5-g1 = 1
a5-f1 = 1
a5-f2 = 1
a5-g2 = 1
a5-h2 = 1
a5-h3 = 1
a5-g3 = 1
a5-f3 = 1
a5-f4 = -1
a5-e4 = 1
a5-d4 = -1
a5-d5 = 0.5
d7-d8 = 0.5
d7-b7 = -1
d7-c6 = -1
d7-e6 = -1
d7-f7 = -1
d7-e7 = 1
d6-d7 = 0.5
d6-b7 = 0.5
d6-c6 = 0.5
d6-e6 = 0.5
d6-f7 = 0.5
d6-g7 = -1
d6-h8 = -1
d6-f4 = -1
d6-f5 = 1
c6-a7 = 0.5
c6-e7 = 0.5
c6-d6 = 0.5
c6-c8 = -1
c6-g6 = -1
g2-a1 = 0.5
h2-a1 = 1
h3-a1 = 1
a2-a3 = 0.5
b2-b3 = 0.5
c2-c3 = 0.5
d2-d3 = 0.5
e2-e3 = 0.5
f2-f3 = 0.5
g2-g3 = 0.5
h2-h3 = 0.5
a2-b3 = 1
b2-c3 = 1
c2-d3 = 1
d2-e3 = 1
e2-f3 = 1
f2-g3 = 1
g2-h3 = 1
h2-g3 = 1
a2-a4 = -1
b2-b4 = -1
c2-c4 = -1
d2-d4 = -1
e2-e4 = -1
f2-a2 = 0.5
g2-a8 = 0.5
g3-h4 = 1
a2-b5 = 0.5
b2-a5 = 0.5
c2-d5 = 0.5
d2-e5 = 0.5
e2-d5 = 0.5
f2-e5 = 0.5
g2-f5 = 0.5
h2-h5 = 0.5
a3-a7 = -1
b3-a4 = 1
c3-d8 = -1
d3-e6 = -1
e3-c6 = 0.5
f3-b6 = 0.5
g3-c6 = 0.5
h3-g4 = 1
h3-h7 = -1
Аноним 09/03/16 Срд 00:42:45  681007
>>681001
> b6 c7
Игра же идет по правилам шахмат, пешка бьет коня. ШАХ И МАТ ОЛИМПИАДНИКИ
Аноним 09/03/16 Срд 00:44:27  681008
>>681007
А, блять.
В условии такой хуйни (что пешка может бить) - оговорено не было.

Ну ок.
Аноним 09/03/16 Срд 01:57:40  681063
14574778610130.png (51Кб, 1121x807)
Фух, отладил. Заебался баги выцеплять.
https://ideone.com/YKN6Dy
Аноним 09/03/16 Срд 10:27:05  681228
Какой у вас рейтинг на кодфорсес?
Аноним 09/03/16 Срд 15:48:12  681526
>>681228
Лично я впервые услышал это слово месяц назад на дваче. Смотрел задачи прошедших контестов - за 2 часа могу решить 2, если повезёт - 3.
Аноним 09/03/16 Срд 16:02:13  681543
http://www.e-olymp.com/ru/problems/41
Сап, друзья есть одна проблема, просьба рассказать алгоритм.
Аноним 09/03/16 Срд 16:21:04  681564
>>681543
http://www.kursovik.com/programming/320360.html
Аноним 09/03/16 Срд 16:35:19  681582
>>681564
Спасибо
Аноним 09/03/16 Срд 19:29:08  681757
14575409490680.jpg (185Кб, 1920x1080)
Забавное наблюдение - если нарисовать матрицу смежности, то искомые группы образуют "ступеньки" на картинке, и графическое решение - поиск наикрупнейшего куска "ступенек".

Подумаю, можно ли это использовать в алгоритме решения.
Аноним 09/03/16 Срд 19:43:04  681777
>>681757
Если ты заштрихуешь главную диагональ, то тебе бросится в глаза кое-что другое - полностью заштрихованный квадрит в левом верхнем углу.
Это более правильное наблюдение. Максимальная клика всегда выглядит как такой квадрат. Проблема в том, что строки и столбцы могут идти в любом порядке, и строки и столбцы квадрата могут быть разрежены полупустыми строками и столбцами.
Просто найти такой квадрат



Когда квадрат выглядит вот так




найти его сложнее. В реальности же там ещё и посторонний мусор будет




Так что пиши Брона-Кербоша и не выёбуйся.
Аноним 09/03/16 Срд 19:43:23  681778
>>681777
Бляяя. Ща оформлю.
Аноним 09/03/16 Срд 19:44:42  681782
>>681777
Просто найти такой квадрат
xxx
xxx
xxx
Когда квадрат выглядит вот так
xx x

xx x

xx x
найти его сложнее. В реальности же там ещё и посторонний мусор будет
xx x
xx
xx x
x
xxxx
Аноним 09/03/16 Срд 19:48:05  681789
>>681782
Ну я собсно ща и проверяю, как оно будет выглядеть - рисую граф повыебистее, а номера позже порандомнее расставлю.
>Так что пиши Брона-Кербоша и не выёбуйся.
Я про эту хуйню всего лишь 15 минут назад на википедии вычитал. Выглядит слишком замороченно и дрючевно.

У меня пока мысль попроще - начинаем со списка пар, как с минимальных групп размером 2.

Каждую группу пытаемся "укрупнить", сканируя соседние вершины и ища такие, которые будут принадлежаьб каждой вершине в группе.

И так до тех пор, пока не будет получаться увеличить список таких кусков. А дальше - дроп и выбор первого из крупных кусков как результата.
Аноним 09/03/16 Срд 20:02:54  681814
>>681526
Как достиг такого навыка? сколько лет тренируешься?
Аноним 09/03/16 Срд 20:42:11  681846
>>681228
Я доходил до 1593, потом все слил. Уже месяца два не пишу, ибо в школе напряги
Аноним 09/03/16 Срд 22:28:09  681970
>>681814
В универе я осознал, что мне нравится писать проги для курсача по дискретной математике. Это было лет 7 назад. Потом решал головоломки и олимпиадные задачи из разных источников. Несистематично и с большими перерывами. Читал какие-то статьи про динамическое программирование.
Недавно взялся за project euler, решил первые 100 задач, дальше пока ломает. Пару раз участвовал в Code Jam, проходил во 2-й раунд, но не показал особо выдающихся результатов.

А вообще что такого в том, чтобы решить 2-3 задачи?
Посмотри на http://codeforces.com/contest/631/problem/A и http://codeforces.com/contest/631/problem/B
В a сразу понятно, что l и r надо брать 1 и n. Остаётся в обоих массивах сделать OR всех элементов, и сложить два получившихся числа. 5 минут.
В b нужно тупо смоделировать процесс. 10 минут.
Остаётся время поковырять C.
Аноним 09/03/16 Срд 22:51:05  681996
>>681789
>сканируя соседние вершины и ища такие, которые будут принадлежать каждой вершине в группе.
Есть идея получше. Допустим ты начинаешь с полносвязного графа размера 1 - одной вершины.
Ты берёшь полный список всех вершин, и убираешь из него все несвязанные с этой вершиной вершины.
Ты получил список всех вершин, которые можно добавить к первой для получения полносвязного графа из двух вершин.
Выбираешь очередную вершину, удаляешь из списка кандидатов все вершины, которые не связаны с новодобавленной. Снова в остатке получаешь список вершин, которые можно добавить к имеющимся 2 для получения треугольника.
Это работает для любого числа вершин, что позволяет наращивать массив рекурсивно. И это эффективнее чем каждый раз пробегаться по всем вершинам, проверяя, связаны ли они со всеми уже включёнными в рассматриваемый подграф.

Конечно надо как-то избегать ситуации когда ты будешь рассматривать одну и ту же комбинацию по несколько раз. К примеру ты начал с пары вершин 1-2 и нашёл, что её можно вырастить до 1-2-3-4. Когда ты начнёшь с пары 3-4 тебе не надо будет рассматривать возможность добавить к ним 1 и 2, потому что этот вариант ты уже рассматривал.

Чтобы понять как это сделать полезно написать неоптимизированную программу, которая будет выводить список _всех_ клик в графе, а не только максимальных. Ну то есть если у тебя полносвязный граф из 5 вершин, то надо вывести 5 клик из 1 вершины, 10 из 2-х, 10 из 3, 5 из 4 и 1 из 5.

Когда соединишь всё вместе получишь Брона-Кербоша.
Аноним 09/03/16 Срд 22:56:42  682003
_тест_
тест
__тест__
Аноним 09/03/16 Срд 23:02:20  682008
>>681996
>И это эффективнее чем каждый раз пробегаться по всем вершинам, проверяя, связаны ли они со всеми уже включёнными в рассматриваемый подграф.
Но я не собирался ни по чему пробегаться. Я собираюсь делать все на множествах. Там и циклов по сути никаких не надо, только объединения/пересечения.
Аноним 09/03/16 Срд 23:17:31  682014
14575546514880.jpg (76Кб, 607x675)
>>682008
Ясно.
Аноним 09/03/16 Срд 23:19:32  682015
>>682014
Да не кипишуй ты, попробую.
Всему свое время. Я пока ебусь с std-шными контейнерами. Раньше юзал Qt-шные, не думал что в голых крестах они такое говно, и что даже чтобы банально узнать, есть ли элемент в контейнере - надо ебаться с итераторами.
Аноним 10/03/16 Чтв 07:04:23  682294
14575826639410.png (62Кб, 1000x943)
14575826639421.jpg (184Кб, 1920x1080)
https://ideone.com/odyLzb
Помогите найти, хуле этой гниде не так.
Из 9 тестов на 1м какая-то "ошибка выполнения".

Тестил на их примере, и на графе в 20 вершин-пикрелейтед
(http://pastebin.com/AYyh68gU)
Аноним 10/03/16 Чтв 14:25:22  682561
>>682294
У тебя "ошибка выполнения", а не неправильный ответ.
Возможно мер-хикка, а его друзья - аутисты.
Аноним 10/03/16 Чтв 14:30:53  682563
>>681970
ты крут!
Аноним 10/03/16 Чтв 14:33:49  682565
>>682561
Блять, а ведь и правда - прога сегфолтится на том единственном случае, когда k=0 и 0 пар, то есть реально одни хикки в друзьях.

А хуле в таком случае должна выводить прога?
Аноним 10/03/16 Чтв 14:35:26  682566
>>682565
Собсно, у меня 3 варианта:
1) нихуя
2) 0
3) 0
1
Аноним 10/03/16 Чтв 14:36:05  682568
>>682565
Значит команда мера - один мегатащер.
Аноним 10/03/16 Чтв 14:36:22  682570
>>682566
>3) 0
>1
Блять, 1 1
Аноним 10/03/16 Чтв 14:37:52  682572
>>682570
this
Аноним 10/03/16 Чтв 14:40:32  682575
14576100328650.png (51Кб, 1031x819)
>>682572
Фак еа!
После инпута надо было добавить
/if (K == 0){
std::cout << 1 << std::endl;
std::cout << 1 << std::endl;
return 0;
}
/
Аноним 10/03/16 Чтв 19:07:23  682849
Это жадник. ОП хуй. Мимо проходил
Аноним 10/03/16 Чтв 19:08:21  682851
>>682849
Это вообще не задача рюкзака.
Ее уже давно решили ИТТ.
Аноним 10/03/16 Чтв 19:16:19  682862
>>681846
Как смог дойти до такого уровня, как готовился?
Аноним 10/03/16 Чтв 21:31:02  683086
>>682862
Занимался. Решал. Ездил в соответствующие лагеря (гугли лкш). Ходил во всякие кружки при ИТМО ДС-2 - боярин
И везде решал как сучка. Практика - это главное
Аноним 10/03/16 Чтв 21:55:38  683115
>>683086
что можешь сказать о людях у которых рейтинг >2000? из моей мухосранской школы как минимум двое имеют звание мастера
Аноним 10/03/16 Чтв 22:05:20  683129
>>683115
Это либо ебаные гении, которые просто выигрывают всеросы по математике и заодно кодят по приколу. Либо хорошие учителя + море практики
Аноним 10/03/16 Чтв 22:11:47  683141
>>683129
а ты сколько времени потратил на это? если к примеру у меня по математике отлично легко, за сколько можно надрочиться?
Аноним 10/03/16 Чтв 22:13:57  683146
>>683141
С разной интенсивностью я занимаюсь уже третий год. Но я хуйней страдаю. Знаю много ребят, которые за календарный год добивались призеров на всеросе. Просто надо реально по этой теме угареть, и реально много работать + изначальный предрасположенности
Аноним 10/03/16 Чтв 23:36:25  683265
>>683146
Двачую этого, сам я говно, но знаю парочку кто добился, но там адовая дрочильня почти каждый день была. Честно говоря, лучше уж что-то более прагматичное дрочить каждый день, но не мне судить успешных людей, кек.
Аноним 11/03/16 Птн 00:16:01  683333
>>683265
Какая разница, если доставляет? Меня уже не раз захватывал такой поток, что я по 8 часов нарешивал эти задачки, другой вопрос, что потом меня переклинивает и я за один присест в пределах суток прочитываю какую-нибудь книгу, а потом неделю бегаю по утрам, забиваю, начинаю кодить на жабе, забиваю, учусь писать декартовы деревья, читаю китайские публикации по биологии и так далее
Аноним 11/03/16 Птн 09:39:54  683457
>>683146
тебе какие-нибудь книги помогли?
Аноним 11/03/16 Птн 10:16:42  683466
>>683457
Очевидный Кормен очевиден. Шень неплох. В принципе годная книга - Реальная математика Грехэма, Кнута и Поташника
Аноним 11/03/16 Птн 10:22:19  683469
14576809393330.jpg (50Кб, 1280x720)
Посоны, есть задачка.

На поле размером NxM клеток в точке (x0, y0) стоит робот, который умеет делать шаг на 1 клетку влево/вправо/вверх/вниз (по диагонали не умеет). Посчитать количество вариантов перемещения робота в точку (x1, y1) ровно за k шагов.

Прелесть в том, что шагать робот может по одним и тем же клеткам несколько раз. И мой алгоритм тупо перебором не периваривает большие поля и ходы. А когда попросил данные для теста, то получил вот это

n = 100
m = 100
x0 = 50
y0 = 50
x1 = 60
y1 = 60
k = 200
ответ = 3026331761191340503770893374595925277055394295450130902271922168548205308642694668236259320332359033488388961148337920
время выполенния 5 сек.

Судя по всему тут можно применить какие то формулы комбинаторики, но я них не силен.
Аноним 11/03/16 Птн 10:23:56  683470
>>683469
Это банальной трехмерное дп
Аноним 11/03/16 Птн 10:24:38  683471
>>683470
Хотя с такими числами... Не знаю. Но ты подумаю в сторону дп
Аноним 11/03/16 Птн 10:34:14  683473
>>683471
Дабл Пенетрейшн?
Аноним 11/03/16 Птн 10:34:39  683474
>>683471
Ну как я понимаю что я и решал динамическим программированием. Рекурсивно перебираю все воздожные варианты. И мой алгоритм работает, но с маленькими числами, а как его оптимизировать я не знаю, может есть в динамическом программировании какой то раздел. Просто в олимпиадном программировании я не силен.
Аноним 11/03/16 Птн 10:37:26  683475
>>683474
Динамика - это рекурсия развернутая в рекурсивную формулу. Или попросту рекурсия с запоминанием. Подумай, как ты можешь для вычисления очередного ответа не заново всю рекурсию запускать, а лишь обращаться, например, к соседним клетка, и как-то использовать уже предпосчитанную информацию
Аноним 11/03/16 Птн 10:43:28  683478
14576822088980.jpg (319Кб, 1000x1504)
>>683475
Спасибо анончик, буду думать в этом направлении.
Аноним 11/03/16 Птн 11:15:02  683493
Вам тут по скольку лет? Вообще бывают олимпиадники в районе 30 лет?
Аноним 11/03/16 Птн 11:16:40  683497
>>683493
Олимпиадники в районе 30 лет - это те, которые уже все выиграли, что могли, и теперь только могут учить остальных
Аноним 11/03/16 Птн 11:22:45  683506
>>683469
>ответ = 3026331761191340503770893374595925277055394295450130902271922168548205308642694668236259320332359033488388961148337920
Это шцтка юмора что ли? Что это за число ебаный в рот?
Аноним 11/03/16 Птн 13:47:04  683680
>>683506

три дохуллиона двадцать шесть дохуллионов триста тридцать один дохуллион семьсот шестьдесят один дохуллион сто девяносто один дохуллион триста сорок дохуллионов пятьсот три дохуллиона семьсот семьдесят дохуллионов восемьсот девяносто три дохуллиона триста семьдесят четыре дохуллиона пятьсот девяносто пять дохуллионов девятьсот двадцать пять дохуллионов двести семьдесят семь дохуллионов пятьдесят пять дохуллионов триста девяносто четыре дохуллиона двести девяносто пять дохуллионов четыреста пятьдесят дохуллионов сто тридцать дохуллионов девятьсот два дохуллиона двести семьдесят один дохуллион девятьсот двадцать два дохуллиона сто шестьдесят восемь дохуллионов пятьсот сорок восемь дохуллионов двести пять дохуллионов триста восемь дохуллионов шестьсот сорок два дохуллиона шестьсот девяносто четыре дохуллиона шестьсот шестьдесят восемь дохуллионов двести тридцать шесть дохуллионов двести пятьдесят девять дохуллионов триста двадцать дохуллионов триста тридцать два дохуллиона триста пятьдесят девять дохуллионов тридцать три квинтиллиона четыреста восемьдесят восемь квадриллионов триста восемьдесят восемь триллионов девятьсот шестьдесят один миллиард сто сорок восемь миллионов триста тридцать семь тысяч девятьсот двадцать
Аноним 11/03/16 Птн 13:55:34  683689
>>681228
А кодфорсес - это самая легитимная платформа?

Вообще, посоветуйте, на какой платформе рейтинг подымать? А то я на каждой решаю по чуть-чуть и забиваю. Хочется зависнуть на какой-то одной.
Аноним 11/03/16 Птн 13:56:28  683690
>>683689
тимус прорешивай. Решишь там 500 задач - красный на кфе обеспечен
Аноним 11/03/16 Птн 13:58:39  683694
>>683690
Спс. Я где-то тоже слышал, что тимус - это самый хардкор.
Аноним 11/03/16 Птн 14:00:38  683701
>>683694
Не хардкор, а реальные задачи. Вот на кфе задачи A и B div2 вообще смысловой нагрузки не несут
Аноним 11/03/16 Птн 14:29:31  683729
Школота, кто-нибудь на московскую городскую олимпиаду идёт? Сколько там времени даётся, сколько баллов надо набрать на призёра?
Аноним 11/03/16 Птн 17:15:41  683883
>>683474
>динамическим программированием
>Рекурсивно перебираю все воздожные варианты
нет, это не дп

>>683471
>Хотя с такими числами...
какими числами? ограничений на n/m/k нет; а с длинными числами нужна только операция сложения

https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
решение дать, или подсказку?
Аноним 11/03/16 Птн 17:16:44  683884
>>683883
>ограничений на n/m/k нет
ограничений на n/m/k в пасте не дано, потому я предоположил очевидное

быстро-фикс
Аноним 11/03/16 Птн 18:36:20  683981
>>683469
Строй деревья, деревья сами себя не построят. Я бы просто обходил вглубь и останавливал ветку, если бы превышал длину пути.
Аноним 11/03/16 Птн 18:42:19  683988
>>683469
Три слова: размещение, сочетание, перестановка. Пиздуй на википедию, выясни что эти слова означают и выучи три формулы.
Аноним 11/03/16 Птн 18:46:09  683997
>>683466
Взялся читать Конкретную математику стоп, ты назвал её Реальная математика? ну ты лах, решил что буду решать все домашние и контрольные задачи. В результате пока не выполз из первой главы.
Как-то хардкорно.
Аноним 11/03/16 Птн 19:52:13  684110
14577151337070.png (382Кб, 804x931)
>>683883
Давай решение или подсказку.

>>683988
Я же писал что в комбинаторике не силён. Подскажи формулу.
Аноним 11/03/16 Птн 19:52:48  684113
>>684110
Дать решение? Простое что охуеть
Аноним 11/03/16 Птн 19:53:17  684117
14577151976260.jpg (132Кб, 512x563)
>>683981
Длинну пути я проверяю.
Аноним 11/03/16 Птн 19:54:01  684119
>>684117
А деревья строишь?
Аноним 11/03/16 Птн 19:54:18  684121
14577152584900.jpg (120Кб, 1920x1080)
>>684113
Давай, если это решение не типа соснуть хуйца.
Аноним 11/03/16 Птн 19:54:37  684122
>>684110>>684113
Не бери его решение, бери моё, оно быстрее!
Аноним 11/03/16 Птн 19:55:30  684123
14577153307630.jpg (51Кб, 681x384)
>>684119
Нет, я сразу путь считаю.
Аноним 11/03/16 Птн 19:56:31  684126
>>684121
https://ideone.com/Y6yY6w

Не знаю как 5 секунд, твой пример с дохуячислом у меня находится за 1,9 сек.
Аноним 11/03/16 Птн 19:58:25  684136
>>684123
>сразу путь считаю
Это как?
Аноним 11/03/16 Птн 19:59:31  684141
14577155711400.jpg (121Кб, 610x895)
>>684126
Охуеть блять! А можешь пояснить что конкретно ты сделал? Это какая то байтоебская магия? Как это вообще возможно?
Аноним 11/03/16 Птн 20:01:24  684145
>>684141
у тебя массив размера n x m x k — кол-во вариантов добраться до каждой точки используя пути соотв. длины
тупо заполняешь его
динамика
Аноним 11/03/16 Птн 20:05:39  684156
>>684145
Подскажи, где я проебался.
У меня число чуток не то, что у ОПа - только первые 27 чисел сходятся из дохулиона.
Аноним 11/03/16 Птн 20:06:11  684159
14577159714190.png (42Кб, 609x536)
>>684145
>>у тебя массив размера n x m x k
Почему именно такая длинна массива?
Аноним 11/03/16 Птн 20:08:16  684167
>>684159
Потому что рекурсивная функция, которая принимает x, y, k.

Нужна таблица, которая позволит сделать так, чтобы функция вычислялась только один раз.

x и y меняются в пределях от 0..n и 0..n, а шаг - от 0 до к.

Итак, количестко итераций снижается с дохулиона со 192 разрядами до 2х миллионов, что тоже дохуя, но уже приемлемо.
Аноним 11/03/16 Птн 20:10:20  684175
>>684167
Я давно собирался вбросить решение, но через memoize! работало долго, уже k=100 считало секунд 10, а 200 считало бы час или полтора.

Сперва пилил свою таблицу и свою мемоизацию (и заебся отлаживать), а потом нашел в документации, что memoize! можно размер таблицы прямо указать. И заебашил алиас на него
>alias memstep = memoize!(step, 100 100 200);
Аноним 11/03/16 Птн 20:10:25  684176
14577162252250.jpg (40Кб, 400x595)
>>684167
А в твоем коде, ты просто заполняешь этот массив 1 и 0? И потом как то приобразовывается к целому числу?
А еще, вот что делает этот кусок кода: return up + down + left + right;
Он рекурсивно вызывает эти функции чтоли? Первый раз просто D разбираю.
Аноним 11/03/16 Птн 20:11:02  684177
>>684176
>И потом как то приобразовывается к целому числу?
Суммируется же.
Аноним 11/03/16 Птн 20:12:22  684180
>>684176
>А еще, вот что делает этот кусок кода: return up + down + left + right;

Да. Ну епт, вся прога строк 30 занимает - хуле там непонятно?

Писал бы на крестах - строк 200 бы заняло минимум, а тут же и длинная арифметика есть в дефолте, и мемоизация.
Аноним 11/03/16 Птн 20:13:41  684182
14577164218130.png (465Кб, 1023x424)
>>684177
>Суммируется же.
Но даже если весь массив запонить 1. То сумма получится всего лишь 2000000 а не духуилиард.
Аноним 11/03/16 Птн 20:14:47  684184
>>684182
С чего вдруг? Ты походу не вдупляешь, количество вариантов по клеткам в зависимости от k растет просто в ебанутой прогрессии.
Аноним 11/03/16 Птн 20:14:57  684185
14577164972980.jpg (89Кб, 510x702)
>>684180
Ну вот я пока и не пойму до конца, как этот алгоритм работает на D.
Аноним 11/03/16 Птн 20:16:34  684188
14577165946700.jpg (752Кб, 3183x1786)
>>684184
Выше же мне сказали что
>>684145
>у тебя массив размера n x m x k — кол-во вариантов добраться до каждой точки используя пути соотв. длины
тупо заполняешь его
Аноним 11/03/16 Птн 20:17:31  684191
>>684188
Да, но в клетках будут охуенно большие числа.
Аноним 11/03/16 Птн 20:18:54  684194
>>684188
идея динамики:
что бы прийти в клетку (x; y) с длинной пути z, нужно быть в одной из соседних клеток с длинной пути z-1
Аноним 11/03/16 Птн 20:19:15  684195
14577167553010.jpg (247Кб, 1191x842)
>>684191
Вроде начинаю понимать, то есть в клетках будет вот эта сумма? return up + down + left + right;
А что означет слово auto? В доках не нашел его что то.
Аноним 11/03/16 Птн 20:20:07  684196
>>684195
auto значит "товарищ компилятор, мне лениво писать тип выражения - так что будь добр, угадай его сам"
Аноним 11/03/16 Птн 20:23:02  684200
>>684195
>то есть в клетках будет вот эта сумма? return up + down + left + right;
Да, верно. Каждый вызов ветвится на 4 по сторонам и суммирует результаты (но сперва смотрит, не обсчитывал ли он уже такой вызов).

Когда k=0 - то если мы в искомой клетке - путь верный(1), иначе путь неверный (и нехуй дальше уменьшать k)
Аноним 11/03/16 Птн 20:24:43  684205
14577170834030.jpg (752Кб, 3183x1786)
>>684196
Анончик, ты охуенен. А как обычные ЯП обходятся без memoize? Оставь свой контакт какой нибудь, если я таки решу эту задачку, и меня возьмут на работу, то подарю любую игру в стиме/ дам на пиво/етц.
Аноним 11/03/16 Птн 20:25:28  684206
14577171281220.png (171Кб, 715x569)
>>684200
Или ты, я тут запутался, вас тут двое похоже.
Аноним 11/03/16 Птн 20:29:01  684210
>>684205
>А как обычные ЯП обходятся без memoize?
В лиспе memoize вроде есть или что то подобное.
В обычных ЯП ты - сам себе memoize, и будешь делать это руками. Ну а тут оно просто есть по дефолту. Я просто обожаю дишечку - это как "правильные кресты 2.0"

>и меня возьмут на работу
Это что, для собеседования чтоле?

>ставь свой контакт какой нибудь
Да не вопрос. pinkierton@gmail.com
Аноним 11/03/16 Птн 20:29:49  684212
>>684210
Блять, с разметкой обосрался.
Аноним 11/03/16 Птн 20:33:15  684217
14577175960660.png (26Кб, 487x499)
>>684210
Да, ты прав, в кложе есть меморайз попробую на нем сделать. А насчет работы, да я норм собеседование прошел, и в конце спросил, а мы что, строчки разворачивать не будем и попросил что нибудь на алгоритмы. Ну я думал будет что то типа найти в строке кол-во трех подряд идущих символов 'abc'. А мне дали эту залупу.
Аноним 11/03/16 Птн 20:35:02  684219
>>684217
Залупа в принципе простая, я просто поначалу охуел от числа на 192 разряда.
Аноним 11/03/16 Птн 20:51:19  684244
Сука, как же хуёво жить в Крыму. Час назад написал последнюю строчку проги и в ту же секунду вырубили свет. Сейчас заново набираю по памяти.
Аноним 11/03/16 Птн 20:52:03  684246
14577187240050.png (152Кб, 780x446)
>>684210
uint k = 100;
а вот этот к нигде не используется?
Аноним 11/03/16 Птн 20:53:11  684248
>>684246
Ну, замени на uint k = 200 и подсунь в конец функции.
Мне лень было оформлять это говно, так что все параметры я захардкодил.
На сам алгоритм они не влияют, это организационные мелочи.
Аноним 11/03/16 Птн 20:54:06  684252
14577188470790.jpg (64Кб, 400x722)
>>684248
Да не, норм. Вроде переписал почти на то, что мне надо.
Аноним 11/03/16 Птн 20:57:45  684260
>>684252
В лоб не переписывай, я где то проебался или опечатался.
С твоим примером сходятся только первые 27 цифр (если он сам конечно без опечатки)
Аноним 11/03/16 Птн 20:58:02  684261
14577190830960.png (171Кб, 715x569)
>>684248
А если вот это переписывать вручну, то тут нужен будет трехмерный массив? Или как лучше по индексу к нему обращаться?

memoize!(step, 100 100 200);
Аноним 11/03/16 Птн 21:00:19  684265
>>684261
>А если вот это переписывать вручну, то тут нужен будет трехмерный массив?
Я, до того как нашел, что memoize можно подсунуть размер хеш-таблицы - охуел от "быстродействия" и пытался напилить свою реализацию.

Я делал одномерный, arr[mnk] c индексацией по формуле.

Аноним 11/03/16 Птн 21:01:11  684267
>>683689
советую участвовать на кодфорсес и топкодер, пригодиться по работе может, а тимус это просто задачник с проверкой, знаю ребят которые прорешали 600-950 на тимусе и имеют на кодфорсес ранг Эксперт, знаю парня который входит в топ 10 на тимусе.
Аноним 11/03/16 Птн 21:03:05  684270
>>684244
> ту же секунду вырубили свет. Сейчас заново набираю по памяти.
для таких случаев надо иметь ноут
Аноним 11/03/16 Птн 21:04:01  684273
>>684270
Для таких случаев надо иметь ИБП, или хотя бы спинной рефлекс делать сейв каждые 2 минуты. Ну впрочем дохуя ИДЕ делают это автоматически
Аноним 11/03/16 Птн 21:36:25  684325
>3026331761191340503770893374595925277055394295450130902271922168548205308642694668236259320332359033488388961148337920
Здравствуйте, господин работодатель! Как я вижу вы догадались загуглить число, которое этому - >>683469 оболтусу для тестов.
Эта простая мера позволила вам выяснить, что данный кандидат склонен к обману, а также с большой вероятностью - наркоман и извращенец (в этом легко убедиться если заглянуть в другие разделы этого форума).
Могу только поапплодировать вашей преусмотрительности!
Аноним 11/03/16 Птн 21:39:59  684332
14577215995050.jpg (10Кб, 180x178)
>>684325
Аноним 11/03/16 Птн 21:43:06  684339
>>683469
В задачнике Меньшикова была такая задачка, посмотри. Там в оглавлении написано, где динамика, там и она должна быть.
Аноним 11/03/16 Птн 21:44:34  684343
>>684339
Хуле смотреть, ее же уже заебенили.
20 строчек на всю прогу от силы >>684126
Аноним 11/03/16 Птн 21:47:07  684348
>>684343
Тупо трёхмерная динамика?
А что за язык? Питон какой-то с встроенной длинной арифметикой?
Аноним 11/03/16 Птн 21:48:29  684355
>>684348
Дишечка же.
Аноним 11/03/16 Птн 21:49:54  684357
>>684343
Можно сделать производительнее, если рассматривать движения по x и по y отдельно. Я нафигачил свой proof of concept, но есть расхождение с ответом после 8 знака, и переполняет стек на ideone. Надо бы переписать на явное динамическое программирование.
https://ideone.com/XZPGR5
Аноним 11/03/16 Птн 21:50:16  684359
>>684355
Чуть ли не впервые слышу, честно говоря.
Кто такая, чем знаменита?
Аноним 11/03/16 Птн 21:51:57  684362
>>683469
Кстати тут непонятно, используется ли в координатах нумерация с 0 или 1.
Пинки пай, ты оба варианта пробовал?
Аноним 11/03/16 Птн 21:52:35  684363
>>684359
Поскольку никакой гугл, микрософт или еще какая хуйня ее не пиарит - она не знаменита.

Вообще, язык, который должен был сделать с++ "с нуля" и избавить его от недостатков. Язык охуенен и я от него тащусь и ссу кипятком, собсно язык моей мечты. Но вакансий по нему нет.
Аноним 11/03/16 Птн 21:53:38  684366
>>684362
>Кстати тут непонятно, используется ли в координатах нумерация с 0 или 1.
Вот кстати, где то тут я и проебался, пока особо не искал.
Мой ответ сходится только на первые 27 цифр. Или надо чего-то поправить и найти, или исходное число само с опечаткой.
Аноним 11/03/16 Птн 21:53:52  684368
>>684363
Жаль, что так получилось.
А каких именно недостатков?
Аноним 11/03/16 Птн 21:54:12  684369
>>684363
У меня знакомый анимешник на нем кф-раунды тащит
Аноним 11/03/16 Птн 21:58:18  684381
>>684368
Любых. Возьми любое говно из крестов, которое бесит - и тут ты его не найдешь.

Например, тут нормальные шаблоны, я их просто беру и пишу (а в крестах ниасилил). Тут нормальные строки, а не 9000 велосипедов. Тут нормальная блять стандартная библиотека (что заметно, для этого примера я просто заюзал мемоизацию и длинную арифметику, а не велосипедил их). Особо охуенные тут слайсы, аналогов в других языках не видел.

По сути, основная идея такова - язык быстрый и нативный, есть сборщик мусора, но возможность пердолиться с указателями никто не отбирал.

Есть указатели, есть маллок и фри, в стандартной библиотеке есть и весь сишный апи. И вообще она спокойно юзает либы от крестов и си.

Долго объяснять короче, язык моей мечты, рили.
Аноним 11/03/16 Птн 22:03:40  684387
14577230206680.jpg (46Кб, 604x556)
>>674231 (OP)
Зашел я значит вот сюда http://acm.timus.ru/ranklist.aspx и мой пердак улетел в стратосферу.
Аноним 11/03/16 Птн 22:03:56  684388
>>684381
Я нихуя не знаю из вышеперечисленного, ибо школьник.
А так ли это важно, что есть в стандартной библиотеке? Нельзя что-ли не стандартную библиотеку с длинкой подключить?
Аноним 11/03/16 Птн 22:09:35  684397
>>684388
Можно. Все можно.

Но когда нормальная стандартная библиотека - ты просто решаешь задачу и занимаешься ей, а не еблей с языком. Вон, сколько у крестов строк? сишные ака "хуйня из указателей" - раз, std::string - два, QString - три, вроде в OpenCV тоже что то было...
Заебывает, честно.
Аноним 11/03/16 Птн 22:12:15  684407
>>684387
Чому?
Аноним 11/03/16 Птн 22:38:11  684457
>>684387
я из этого списка знаю парня
Аноним 11/03/16 Птн 22:49:37  684478
>>684357
>Можно сделать производительнее
Ну, не знаю как запустить грувипрогу на своем компе.
Но на моем пример с оповскими данными у меня считается меньше секунды при ограничении в 5 секунд.
>но есть расхождение с ответом после 8 знака
У меня первые 27 сходятся. ХЗ, почему не все - вроде должно быть все правильно.
>и переполняет стек на ideone
Я как то логарифм от факториала пытался на жабе посчитать и охуел - жаба то, в отличии от дишечки, не оптимизирует хвостовую рекурсию, и на 15000 вроде у меня тоже стек распатронило на ровном месте.

Аноним 11/03/16 Птн 23:08:22  684499
>>684478
Если на пальцах - есть минимальное число ходов, требуемое чтобы из (x0, y0) прибыть в (x1, y1), и есть некоторый излишек.
Рассматриваем все варианты распределения этого излишка между ходами по горизонтали и вертикали. Для каждого считаем количество вариантов. Результаты суммируем.

Как считаем:
Допустим ходов по горизонтали X, а по ветикали Y. X + Y = k.
Рассматриваем одномерную задачу для x: сколько есть способов добраться из x0 в x1, не выходя за пределы [0..M-1].
Рассматриваем одномерную задачу для y: сколько есть способов добраться из y0 в y1, не выходя за пределы [0..N-1].
Посчитали? Отлично. Остаётся посчитать, сколько есть вариантов соединения одного с другим для получение уникальных путей в 2d сетке.
Впихнуть в последовательность из k ходов X горизонтальных ходов без учёта порядка можно C(X, k) способами.
Результат = горизонтальное x вертикальное x С(X, k).
Аноним 11/03/16 Птн 23:35:32  684519
>>684499
Твой метод я вроде понял (только не понимаю, почему это должно работать).
Хуле, щас попробую реализовать. Затестю и результат, и скорость.
Аноним 12/03/16 Суб 01:37:20  684652
14577358401510.png (72Кб, 791x858)
14577358401521.png (75Кб, 949x563)
14577358401542.jpg (34Кб, 604x604)
Аноним 12/03/16 Суб 01:54:54  684659
>>684652
Это что за язык?
Аноним 12/03/16 Суб 01:56:12  684660
>>684652
А что “зачем”? Я этих ваших грувей не знаю, их цомпелятора у меня нет.
И какая разница, если код - абсолютно такой же?
Аноним 12/03/16 Суб 01:57:31  684661
>>684660
Очевидно, первый пик - Ди, второй - Groovy.
Аноним 12/03/16 Суб 01:58:54  684662
>>684660
Аноним 12/03/16 Суб 01:59:21  684663
>>684660
Код-то один, а вот результат-то разный
Аноним 12/03/16 Суб 02:01:34  684664
>>684663
И результат такой же, я просто с условиями химичил после.
Там >=0 и <m должно быть. Форкни и проверь.
Аноним 12/03/16 Суб 02:03:56  684665
И да - как запустить эту грувипрогу в терминале, имея бубунту?
Хочу сравнить скорость.
Аноним 12/03/16 Суб 02:06:38  684667
>>684664
Аноним 12/03/16 Суб 02:07:59  684668
>>684664
Форкнул - https://ideone.com/2YW0d1
Получил результат
3026331761191340503770893373029273844677591368122716618704642247067326254159330908652193057324457123166746681628950720
Всё ещё не сходится с
3026331761191340503770893372888058869422738484032331390788387569021838371831280294822254761283098828539404148603710720
Аноним 12/03/16 Суб 02:12:14  684669
>>684668
Расслабься.
У источника данных вообще 3026331761191340503770893374595925277055394295450130902271922168548205308642694668236259320332359033488388961148337920.

И у тебя, и у меня с ним сходятся только первые 27 цифр.

Такое ощущение, что везде реализация BigInt - сродни флоатам и накапливает какую-то погрешность.
Аноним 12/03/16 Суб 02:16:01  684670
>>684669
У меня мир рушится, а ты говоришь расслабся?!
>>684665
Для начала сделай
sudo apt-get install groovy2
Аноним 12/03/16 Суб 02:19:01  684672
>>684670
>У меня мир рушится, а ты говоришь расслабся?!
Как мы заметили, на абсолютно одинаковом алгоритме могут быть отличия в цифрах. И твой, и мой сходится с тестовым на первые 27 цифр (причем мой сходится ближе, азаза).

Вывод1: как минимум 1 из наших ответов неверен.
Вывод2: оповское тестовое значение также может быть неверным.

Поскольку алгоритм явно одинаков, сколько там получилось - не столь важно (один хуй с таким числом - столько атомов во вселенной не наберется)
Аноним 12/03/16 Суб 02:19:22  684673
>>684670
>sudo apt-get install groovy2
Ну допустим сделал - а дальше то что?
Аноним 12/03/16 Суб 02:21:22  684674
>>684673
groovy test.groovy
Аноним 12/03/16 Суб 02:22:22  684676
>>684674
Ну ты пастебин то скинь.
хуле я со скриншота набирать буду?
Аноним 12/03/16 Суб 02:25:43  684677
>>684676
Так я думал ты хочешь замерить перформанс первой моей версии - >>684357
Ну ок. Кинул тебе на пастебин, проверяй http://pastebin.com/UsRpiM2b
Аноним 12/03/16 Суб 02:26:51  684678
>>684677
Первую версию я хотел утрецом переписать на дишку, и сравнивать уже сравнимые вещи.

Один хуй я этих грувей не знаю.
Аноним 12/03/16 Суб 02:28:11  684679
>>684677
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/home/wolph/workspace/robot/test.groovy: 1: unable to resolve class groovy.transform.Memoized
@ line 1, column 1.
import groovy.transform.Memoized
^

1 error
Аноним 12/03/16 Суб 02:37:54  684680
>>684679
По ходу у тебя вызывается первая версия
groovy -v
показывает 1.8.6? Тогда делай
sudo apt-get remove groovy
Аноним 12/03/16 Суб 02:38:36  684681
>>684680 После этого должен остаться пакет groovy2 и команда groovy test.groovy должна работать.
Аноним 12/03/16 Суб 02:40:15  684683
14577396154630.png (47Кб, 1052x471)
>>684681
Работает.

Но дишная версия ощутимо быстрее.
Аноним 12/03/16 Суб 02:46:22  684685
>>684683
Ты замерял время старта JVM.
Юзай
println System.currentTimeMillis()
...
println System.currentTimeMillis()
Но вообще оно и должно быть медленнее на одинаковых алгоритмах. Типизация то типическая.
Аноним 12/03/16 Суб 02:48:00  684687
>>684685 То есть динамизация типическая. То есть... Ну ты понял.
Аноним 12/03/16 Суб 02:50:41  684689
>>684687
Ну да, понел.

Померял - 3421 мсек.
Аноним 12/03/16 Суб 02:54:22  684691
Надо будет с утреца заняться хуйней и попробовать переписать это на чистом лишпе. Там, если вики не пиздит, и мемоизация встроена, и числа - длинные по дефолту.

Интересно, какой там результат будет, лишпу все таки несколько десятилетий и ему я доверяю.
Аноним 12/03/16 Суб 04:36:18  684713
http://pastebin.com/E096Qgru
Аноним 12/03/16 Суб 04:46:47  684722
>>684713
Моя первая прога на Хаскелле. Прям чувствую, как передо мной распахнулся мир пандорических захватов, монадических трансформеров в категории эндофункторов, кластеров метапарадигм, зигохистоморфных препроморфизмов наконец.
Аноним 12/03/16 Суб 07:27:29  684756
14577568500380.jpg (6Кб, 248x203)
>>684713
>solve :: Int -> Int -> Int -> Int -> Int -> Int -> Int -> Integer

Сука до слез
Аноним 12/03/16 Суб 09:21:17  684772
14577636777710.jpg (117Кб, 734x1087)
>>684672
>Вывод2: оповское тестовое значение также может быть неверным.
Возможен и такой вариант, так как у меня точно такое же значение как и у вас получается

3026331761191340503770893372888058869422738484032331390788387569021838371831280294822254761283098828539404148603710720
Аноним 12/03/16 Суб 13:13:29  684890
А можно ли за год надрочиться чтобы решать div2 A и div2 B?
Аноним 12/03/16 Суб 15:26:21  684983
>>684890
Аноним 12/03/16 Суб 15:26:38  684984
>>684890
Аноним 12/03/16 Суб 15:27:44  684985
>>684772
Блять. Попытался переписать на язык смайликов не зная его, и обосрался.
Может подскажете чого не так?
http://pastebin.com/6xGZSze4
Аноним 12/03/16 Суб 16:19:45  685060
>>684890
Смотря что у тебя с математикой. Если в вузе получал пятёрки, то можно.
Сначала надо прорешать стандартные задачки по дискретной математике.
Сделать обязательные мелочи типа перевода между произвольными системами счисления и генерации чисел-палиндромов. Не помешает самому написать длинную арифметику.
Вникнуть в трюки с побитовыми операциями, тут подойдёт http://www.hackersdelight.org/
Сделать поиск анаграмм методом "с размахиванием руками".
Потом пишешь решето Эратосфена и факторизацию чисел, задачки на линейное программирование (начни с задачи о том, сколькими способами можно разменять энную сумму заданными купюрами).
Обход графа в глубину и в ширину, поиск кратчайшего пути, минимизация потока. Всё это для графов, представленных разными структурами данных.
Пишешь решалку судоку и непобедимый алгоритм для крестиков-ноликов миимаксом.
Проникаешься основными формулами комбинаторики, пишешь свою небольшую либу для получения всех сочетаний, перестановок и размещений для заданного множества.
Особое внимание уделяешь рекуррентным формулам для возведения в степень n, вычисления чисел Фибоначчи и Каталана, коэффициентов бинома Ньютона. Задачка Иосифа-Флавия сюда же.
Теория чисел нужна на уровне алгоритма Эвклида, генерации пифагоровых троек, формул для "многоугольных" чисел, сумм полиномов для аргументов от 1 до N, нахождения периода десятичной дроби, полученной в результате деления двух чисел и наоборот.

Когда освоишь это надо просто нарешивать задачи.
Аноним 12/03/16 Суб 16:22:21  685063
>>684985
Какой диалект и как запустить?
Аноним 12/03/16 Суб 16:33:06  685072
>>685060
Сохранил твой пост, добра тебе

мимо-пробегал
Аноним 12/03/16 Суб 17:50:04  685143
>>685060
матан было 4, но я филонил, линейка, геометрия, тервер, матстат - отлично, в школе был по математике лучше тех ребят что ездили на финалы acm
Аноним 12/03/16 Суб 17:53:56  685148
>>685060
Спасибо тебе. Вот ты так расписал все подробно, сколько лет тебе? Какие достижения в программировании?
Аноним 12/03/16 Суб 18:43:29  685237
>>685148
26 лет. Никаких достижений тащемта нет. В шараге где я учился никто подготовкой олимпиадников не занимался. Жаль конечно.
Это хобби у меня такое - решать головоломки и олимпиадные задачки по программированию.
Решённые задачки я складываю в большой чёрный пакет облачную папочку. За год больше сотни набирается.
Когда писал пасту я открыл эту папочку и пробежался по решениям. В пасту включил знания, требуемые для решения типовых задач.
Учитывай что это начальный-средний уровень. В этой пасте даже китайской теоремы об остатках нет.
Аноним 12/03/16 Суб 19:07:00  685268
>>685063
Common Lisp
Я на бубунте запускал REPL и копипастил по строчкам, gcl
Аноним 12/03/16 Суб 20:28:21  685386
>>685237
Пробовал в Гугл Код Джэм?
Аноним 12/03/16 Суб 23:34:22  685638
http://hecs.info/
Что скажете, атлеты?
Аноним 12/03/16 Суб 23:36:41  685640
>>685638
Щито это?
Аноним 12/03/16 Суб 23:38:10  685641
>>685640
Не знаю. Что-то вроде руководства к действию, наверное. Я вообще у вас спросил
Аноним 12/03/16 Суб 23:39:46  685642
>>685641
Ну хер знает, я ничего не читаю, а решаю велосипедно "как в голову взбредет".
Аноним 12/03/16 Суб 23:40:54  685643
>>685642
И как решается? Сколько на кфе?
Аноним 12/03/16 Суб 23:41:20  685644
>>685642
Кстати, всякие жуткие структуры данных тебе тоже в голову сами приходят?
Аноним 12/03/16 Суб 23:43:24  685650
>>685643
>Сколько на кфе?
Не знаю, что это и где. Я несколько дней назад вкатился
Аноним 12/03/16 Суб 23:43:41  685651
>>685644
Это какие такие?
Аноним 12/03/16 Суб 23:46:00  685655
>>685651
Навскидку декартовы деревья, многомерные деревья декартовые, деревья отрезков с модификациями, суффиксные деревья, много их
Аноним 12/03/16 Суб 23:47:54  685662
>>685655
А никак. Я всей этой ебани не знаю.

Хуле, вкидывай задачу, где оно применяется.
Аноним 12/03/16 Суб 23:51:26  685670
>>685662
http://neerc.ifmo.ru/school/archive/2014-2015/ru-olymp-regional-2015-day1.pdf
Третья, с прошлогоднего региона
Аноним 13/03/16 Вск 00:04:33  685679
>>685670
Ты ничего не путаешь? 3-я задача решается в лоб.
Аноним 13/03/16 Вск 00:07:38  685682
>>685679
С полными ограничениями она решается декарткой или корневой декомпозицией и никак иначе
Аноним 13/03/16 Вск 00:08:31  685683
>>685682
Хуле, вот и попробую.
Аноним 13/03/16 Вск 00:09:39  685685

>>685683
Иди сначала почитай про сложность по Колмогорову
Аноним 13/03/16 Вск 00:11:07  685687
>>685685
Нахуя? Вот упрусь в какую непреодолимую хуйню в процессе решения - тогда и пойду гуглить и читать.

Где можно найти пример входных и выходных данных? Я имею в виду - именно ебического размера, а не тот крошечный?
Аноним 13/03/16 Вск 00:14:21  685690
>>685682
В чём подвох? В том, что в список делаются вставки, и надо использовать линкед лист, а по нему доступ стоит O(n)?
Аноним 13/03/16 Вск 00:16:42  685691
>>685687
http://codeforces.com/gym/100586
Здесь можешь ее попытаться сдать
Или выкачать архив тестов отсюда:
http://neerc.ifmo.ru/school/archive/2014-2015.html#region
>>685690
Да, Декартово дерево в среднем дает нам асимптотику логарифмическую + выигрыш по памяти
Аноним 13/03/16 Вск 00:37:04  685713
>>685691
Ну хуй знает, я бы наверно навелосипедил ещё один двусвязный список, в котором хранил бы ссылки на каждый скажем 300-й элемент основного. И апдейтил бы его хвост после каждого эвента.
Или можно сделать по-другому. Держать значения в массиве, отдельно мапу для добавляемых значений и таблицу поправок вида
"начиная с 12345-го индекса индексы занижены на 1"
Когда таблица будет слишком разрастаться, создавать новый массив со всеми поправками и добавлениями.
Если писать на сишке вполне можно и уложиться в секунду.
Аноним 13/03/16 Вск 00:38:25  685715
>>685713
Во-во. Вот, я думаю, в конечном итоге этот "велосипед" и будет похож на это самое говнодерево.
Аноним 13/03/16 Вск 00:39:07  685716
>>685713
Не отрицаю, что такое шаманство может зайти. Но декартку проще и очевиднее было написать
Аноним 13/03/16 Вск 01:18:13  685752
>>685713
Подумал немного над этим велосипедом... Можно сделать лучше. Не привязываться жёстко к каждому k-му элементу, а просто хранить лист структур (указатель на начало диапазона, количество элементов в диапазоне).
Если диапазон слишком разрастается - дробить его на 2, стал слишком маленьким - соединять с соседом (и сразу дробить на 2, если получился переросток).
Ничто не мешает сделать эту индексную систему многоуровневой. Жопой чую, что можно добиться логарифмического времени доступа в худшем случае. Надо будет внимательно посмотреть на худшие случаи с переполнениями и недонаполнениями, задевающими сразу все уровни.
Получается эдакое дерево, упавшее на бок и попиленное лесорубами.
Аноним 13/03/16 Вск 03:10:25  685810
>>685716
>декартку
ниасилил причем тут декартово дерево

в моем понимании, для каждого узла будет {кол-во элементов в левом поддереве, сумма квадратов длин листьев (= сумме этого элемента левого и правого поддеревьев), высота (для балансировки)}

соотв. O(k ∗ log(n))
Аноним 13/03/16 Вск 05:25:01  685842
>>685752
Всё конечно же изобретено до меня - https://en.wikipedia.org/wiki/Skip_list#Indexable_skiplist
К сожалению не могу найти ничего про его большое О на удаление/добавление.
Аноним 13/03/16 Вск 06:06:18  685846
>>684985
http://pastebin.com/ZmKktwua

ubuntu@ubuntu-VirtualBox:~$ time clisp test.cl

3026331761191340503770893372888058869422738484032331390788387569021838371831280294822254761283098828539404148603710720

real 1m30.980s
user 0m18.352s
sys 0m2.264s
Аноним 13/03/16 Вск 15:51:08  686233
Пацаны, кто вккап пишет сейчас?
Аноним 13/03/16 Вск 16:59:40  686297
>>686233
смотрю квалификацию, чувак из моей школы уже решил все задачи
Аноним 13/03/16 Вск 17:01:48  686303
>>686297
У меня тоже некоторые знакомые все порешали. Я туплю над третьей, одно левое решение уже заслал
Аноним 13/03/16 Вск 18:07:29  686391
>>686303
у тебя какой рейтинг?
Аноним 13/03/16 Вск 18:09:08  686396
>>686391
Сейчас под 1400, добивался почти 1600
Аноним 13/03/16 Вск 18:09:54  686398
>>686233
Короче первое место займут ребята из УрГУ или Китая
Аноним 13/03/16 Вск 18:10:19  686402
>>686396
давно тренируешься? какое образование?
Аноним 13/03/16 Вск 18:11:25  686403
>>686398
Вккап - это только для русских. Первое место займет Коротткевич с Бардашевичем (subscriber и tourist)
Аноним 13/03/16 Вск 18:11:56  686405
>>686402
10 класс, про олимпиадное программирование знаю с 8. Большую часть времени страдал хуетой
Аноним 13/03/16 Вск 18:30:06  686418
14578830070720.jpg (10Кб, 263x192)
>Я подтверждаю, что мой возраст не менее 14 и не более 23 полных лет в настоящий момент.
Аноним 13/03/16 Вск 18:31:50  686420
>>686418
Тебе 12?
Аноним 13/03/16 Вск 18:33:15  686423
>>686420
Да.
Аноним 13/03/16 Вск 18:33:26  686424
>>686418
ты старичок как и я наверно
Аноним 13/03/16 Вск 18:34:06  686425
>>686403
Я туриста как то не заметил, так то да, турист первый будет
Аноним 13/03/16 Вск 18:35:50  686428
Что-то затупил. Надо было Абу_team создавать и решать всем двачем
Аноним 13/03/16 Вск 18:36:38  686431
>>686425
На самом деле не вдупляю, как можно быть Геной. Он же все нахуй решает
Аноним 13/03/16 Вск 18:42:20  686441
>>686431
Я когда увидел рейтинги топов на кодефорсес долго истерически смеялся.
Они заявляют, что их система рейтинга подобна ЭЛО.
В шашках, шахматах, и тому подобном говне топовые игроки имеют ЭЛО рейтинг 2500-2700. А тут 3850. Пиздец.
Аноним 13/03/16 Вск 19:13:05  686509
>>686441
>говне
Тащемта не везде http://www.goratings.org/
От способа расчета зависит
Аноним 13/03/16 Вск 19:17:28  686524
>>686509
Не понял, бля, а где русские?
Аноним 13/03/16 Вск 21:25:44  686766
Сколько у кого задач и рейтинга на тимусе?
Аноним 13/03/16 Вск 21:45:49  686791
>>686431
ну так парень с 5 лет кодит, я про код до 27 лет и не слышал даже
Аноним 13/03/16 Вск 21:46:44  686794
>>686766
у меня 2 задачи решено, парень из моей школы на первой страничке светится, потом еще парень из школы в топ50
Аноним 13/03/16 Вск 21:54:00  686803
>>686794
Что за парень-то в топе?
Аноним 14/03/16 Пнд 17:02:42  687644
Посаны, подскажите.
Бинарный поиск работает по отсортированным массивам. А можно написать вменяемый бинарный поиск через рекурсию который работает и с развернутыми массивами?
Допустим, есть [1,2,3..n] как arr и возможен также [100,99,98..n] как аргумент, надо чтобы нашло индекс в обоих случая.

Конечно проверить в тупую массив и написать две ветки через if я додумался, но может есть какое-нибудь более элегантное решение, чтобы не городить лишнюю кучу кода?
нюфак в этих ваших алгоритмах и задачках
Аноним 14/03/16 Пнд 18:49:46  687827
14579705868470.jpg (247Кб, 1191x842)
>>684985
Уважаю братишка. Вот мое решение на кложе https://ideone.com/LVX5ng
Аноним 14/03/16 Пнд 21:09:31  688018
>>687644
Бинпоиск работает на монотонных последовательностях
Аноним 15/03/16 Втр 12:28:58  688634
Расскажите свои истории успеха, как пришли к олимпиадам, как трудились чтобы достичь высот?
Аноним 15/03/16 Втр 13:09:38  688669
>>688634
Лет 8-9 назад училка по информатике потянула на городскую коколимпиадку по погромированию. Не трудился.

Эээ, все.
Аноним 15/03/16 Втр 13:40:20  688701
>>688669
И что дальше было? Сейчас что с тобой?
Аноним 15/03/16 Втр 13:43:47  688705
>>688701
Ничего. Потом я пошел в вузик. Но вузиковскую олимпиадку по кокограммированию я засрал, ибо там скорее всего был сговор - по правилам на отбор должен был отводиться час, а нам дали полчаса и по листку бумаги с заданием, которое (как я уже вспомнил на 3м курсе, когда у нас пошла комбинаторика и матстатистика) - вообще не имело ничего общего с программированием, а по сути это была формула из комбинаторики. Ну, разве что реализовать "функцию факториала" для нее, лол.

После вузика 2 года поработал, заебало, уволился, сычую.
Аноним 15/03/16 Втр 18:48:12  689046
>>688705
тебе 24? какие планы сейчас, гугл код джэм будешь пытаться? я вообще в школе не знал о программировании, хотя на олимпиадах по матеше уделывал парня который сейчас уже и гугле и фейсбуках поработал
Аноним 15/03/16 Втр 18:50:26  689048
>>689046
>тебе 24?
Да. Скоро 25.
>какие планы сейчас
Никаких. Попроебываюсь, поучу алгоритмы (работал погромистом, но по образованию я инженегр и самоучка - так что теоретические основы у меня хромают). Права получу, пузо сброшу, ремонт сделаю, отдохну нормально.

А потом поищу работу получше.
Аноним 16/03/16 Срд 13:38:13  689673
14581246940030.jpg (150Кб, 910x596)
Как такое решать?
Аноним 16/03/16 Срд 13:50:19  689685
>>689673
Где ограничения и как проверять?
Аноним 16/03/16 Срд 14:02:13  689691
>>689685
http://codeforces.com/contest/644/problem/A
Аноним 16/03/16 Срд 16:02:56  689782
>>689673
>>689691
Сука, нельзя, бля
Аноним 16/03/16 Срд 16:40:13  689810
>>689673
Достаточно минуту порисовать на листочке
Бывший_цвета_морской_волны - кун
Аноним 16/03/16 Срд 17:45:13  689870
>>689673
шахматная раскраска
Аноним 16/03/16 Срд 17:51:42  689873
>>689870
Ну, пиздец. Сказано же не обсуждать нигде. Ты мне еще вторую тогда оттуда реши, бля
Аноним 16/03/16 Срд 18:36:39  689911
>>689873
да похуй мне бля, щаз решу
Аноним 16/03/16 Срд 18:39:18  689914
>>689911
обычная линеечка, хуйле
Аноним 16/03/16 Срд 18:49:31  689925
>>689914
Лично я уже минут 30 потею. Тяжело думать что-то
Аноним 16/03/16 Срд 18:53:13  689931
>>689873
да всем похуй, все равно те кто обсуждает нихуя не смогут
Аноним 16/03/16 Срд 18:54:13  689932
вообще эти задачи за 10 минут все решаются опытным олимпиадником 14ти лет
Аноним 16/03/16 Срд 19:07:52  689953
>>689914
Лол, умудрился тл схватить. Вот же ж я тупой
Аноним 16/03/16 Срд 19:24:26  689969
>>689953
Теперь ошибка на претесте 4. Я ебал
Аноним 16/03/16 Срд 19:33:02  689974
Если я начал изучать программирование в феврале, и до сих пор не могу решить див2а и див2б, то это значит что я совсем тупой?
Аноним 16/03/16 Срд 19:33:23  689975
>>689925
рацетамы пропей
Аноним 16/03/16 Срд 19:34:10  689977
>>689974
Это значит, что ты мало занимаешься
Аноним 16/03/16 Срд 19:42:40  689983
>>689977
нужно больше, по 8 часов в день? стоит ли это делать каждый день или как в кружках 2 раза в неделю?
Аноним 16/03/16 Срд 19:50:08  689988
>>689983
Еще раз, что ты можешь решить, а что нет?
На каком языке пишешь?
Аноним 16/03/16 Срд 19:51:36  689991
>>689988
прохожу курс с++ на яндексе, в курсе какие-то задачи могу решить, какието нет, на кодфорсерс не могу решить ниче пока
Аноним 17/03/16 Чтв 20:18:23  690949
Посоны, где можно разбор задач с ИОИП посмотреть? А то что-то ничего не могу нагуглить.
Аноним 17/03/16 Чтв 21:11:24  691003
>>690949
http://informatics.mccme.ru/course/view.php?id=117
Аноним 17/03/16 Чтв 21:18:21  691016
>>691003
Там только у одной задачи разбор.
Аноним 17/03/16 Чтв 21:20:12  691022
>>691016
Посмотри, может на кфе топики есть
Аноним 17/03/16 Чтв 21:48:03  691075
>>691022
Там ничего нет или я плохо ищу.
Аноним 17/03/16 Чтв 22:00:55  691095
>>691075
Печаль. Официальных разборов, насколько я знаю, нет
Аноним 17/03/16 Чтв 23:27:28  691176
Не олимпиадная задача, но вы тут любите алгоритмы подрочить, так что спрошу.
Есть набор точек вида (широта;долгота). Нужно придумать как находить точку в этом наборе, ближайшую к заданной (не из набора), быстрее, чем за линейное время.
Например, есть координаты всех макдональдсов, и нужно найти ближайший к юзеру, даже если юзер посреди Антарктиды.

Для плоскости есть quadtree, а вот как сделать что-то подобное для сферы - ума не приложу.
Аноним 17/03/16 Чтв 23:28:50  691177
>>691176
А чем плоскость от сферы то отличается?
Аноним 17/03/16 Чтв 23:31:51  691179
>>691177
Тем, что тривиально делится на куски одинаковой площади и формы.
Аноним 17/03/16 Чтв 23:33:05  691181
>>691179
Ну представь, что твой шарик - это прямоугольник. Развертку глобуса не видел?
Ну, будут куски не одинакового размера - и поебать, все равно в антарктиде макдональсов не шибко много.
Аноним 17/03/16 Чтв 23:49:35  691198
>>691181
Не катит. Макдональдсы только для примера.
Если бы такое решение подходило - взял бы геохеш и не парился. Но, во-первых, в полярных широтах размер кусков сильно отличается от экватора, во-вторых, кратчайшее расстояние вообще может идти через полюс и развертка отсасывает.
Аноним 17/03/16 Чтв 23:52:41  691200
>>691198
Чем блять не катит?
Нарезаем шарик на куски, каждую точку пихаем в соответствующий кусок. Итого - чтобы искать ближайшую мы перебираем расстояния только точек в текущем куске, а не на всем шарике. Куски можно делать многоуровневыми - большой кусок включает в себя куски поменьше и так далее - получится сорт оф дерево.

Не сомневаюсь, карты ИРЛ как-то похоже и работают.
Аноним 18/03/16 Птн 00:10:10  691214
Посмотри на карту. Что ближе всего к Хельсинки: Улан-Батор, Анадырь или Нью Йорк? По развертке хуй скажешь, что Анадырь.

Карты работают в самом деле так, но только потому, что подобные задачи на практике всегда ограничены относительно небольшой территорией, в рамках которой кривизной Земли можно пренебречь.
Аноним 18/03/16 Птн 00:14:59  691219
>>691214
>что подобные задачи на практике всегда ограничены относительно небольшой территорией, в рамках которой кривизной Земли можно пренебречь.
Ну вот - а в твоем случае разве не так? Что у тебя за задача такая?
Аноним 18/03/16 Птн 00:27:49  691230
>>691219
Нет, в моем нельзя, решение должно работать для всей Земли. Задача с авиацией связана.
Сейчас работает полным перебором, но банально интересно найти оптимальное решение для общего случая.
Аноним 18/03/16 Птн 00:30:31  691234
>>691230
По какому количеству объектов идет поиск?
Аноним 18/03/16 Птн 00:44:29  691244
>>691176
>Для плоскости есть quadtree, а вот как сделать что-то подобное для сферы - ума не приложу.
Да точно такое же рекурсивное разбиение пространства. Наиболее безгеморройный способ - взять octtree и отобразить широту и долготу в [x;y;z] на сфере, так как минимальное расстояние по поверхности сферы будет соответствовать минимальному же расстоянию по хорде.
Аноним 18/03/16 Птн 01:22:14  691258
14582533347040.png (60Кб, 720x600)
>>691176
http://kerbalspace.tumblr.com/post/9056986834/on-quadtrees-and-why-they-are-awesome
Ну или нарезай икосаэдр https://en.wikipedia.org/wiki/Geodesic_grid
Аноним 18/03/16 Птн 08:00:58  691357
>>691176
Ну, я слышал, что для поиска кратчайших путей алгоритм есть. Дыйкстра, как-то так
Аноним 18/03/16 Птн 08:05:03  691358
>>691214
Ну и получишь ты Улан-Батор, Анадырь и Нью Йорк. Потом пройдёшься по ним, посчитаешь расстояние и выберешь наименьшее.
Аноним 18/03/16 Птн 08:09:48  691361
>>691358
Как понять сколько ближайших точек надо набрать прежде чем выбирать из них наименьшее?
Аноним 18/03/16 Птн 10:30:08  691421
>>691244
> минимальное расстояние по поверхности сферы будет соответствовать минимальному же расстоянию по хорде
Не подумал об этом. Ты прав, это выглядит как самое простое решение. Спасибо.
Аноним 18/03/16 Птн 20:27:13  691913
14583220335510.jpg (43Кб, 929x371)
Подскажите, как решать. Не могу понять как записать условие, как соотносятся i и j каждого элемента
Аноним 18/03/16 Птн 20:31:35  691916
>>691913
m[j] == abs(i - j)
Аноним 18/03/16 Птн 20:39:09  691929
>>691916
поясни, пожалуйста, что такое m[j] и что такое abs, а то пока такого не объясняли еще на курсе
Аноним 18/03/16 Птн 21:00:53  691956
>>691929
>такое m[j]
это сожранное вакабой m[і][j]

>abs
модуль числа
https://ru.wikipedia.org/wiki/%D0%90%D0%B1%D1%81%D0%BE%D0%BB%D1%8E%D1%82%D0%BD%D0%B0%D1%8F_%D0%B2%D0%B5%D0%BB%D0%B8%D1%87%D0%B8%D0%BD%D0%B0
Аноним 18/03/16 Птн 21:11:12  691960
>>691956
Спасибо, ты просто мегамозг! Жаль что у меня нет таких друзей программистов
Аноним 20/03/16 Вск 15:33:31  693317
>>691960
Здесь все твои друзья
Аноним 23/03/16 Срд 18:06:23  696330
14587455835160.jpg (81Кб, 965x506)
Аноним 23/03/16 Срд 18:37:50  696375
>>696330
Наверное нужно начинать просмотр с первого элемента, если он не равен искомому то потом смотреть второй, потом четвертый, потом восьмой - пока не получим элемент больший искомого, и дальше бинарный поиск на последнем отрезке.
Аноним 23/03/16 Срд 19:14:11  696415
Вопрос олимпиадникам: бывает ли у вас, что вы дропаете задачи, так и не решив, и переключаетесь на другое?
Аноним 23/03/16 Срд 19:32:19  696426
>>696415
Ну да. Все так делают время от времени.
Аноним 24/03/16 Чтв 00:22:40  696738
Расскажите про Кодефорсес. Когда там контесты? Там всегда правила, что сначала задача больше баллов стоит, чем потом? Насколько сложные задачи? Какой рейтинг там -- ето крута?
Аноним 24/03/16 Чтв 10:03:27  696870
>>696738
Контесты на главной странице вывешиваются объявы, бывает что несколько за неделю. Про баллы не очень понятно, я сам не умею решать, но видел как в разные контесты у человека вычиталось за 2 решенные из пяти, а в другой контест например за 2 решенные прибавлялось. Еще вычитают если ты одну задачу несколько раз отсылаешь неверное решение. Крутой рейтинг начинается думаю с Эксперта. Ниже Специалиста наверно зашквар.
Аноним 28/03/16 Пнд 17:58:04  701111
Я ньюфаг, записался в ВУЗе на курсы, щас тренируют на acmp, говорят, что потом нужно на Тимус с Кодфорсами переходить. И у меня возник вопрос: какова сложность задач на олимпиадах (на том же acm) по сравнению с acmp? Если я решаю на acmp задачи сложности 30-40% это же все хуйня по сравнению с олимпиадами?
Аноним 28/03/16 Пнд 21:05:15  701379
14591883155010.jpg (58Кб, 954x387)
Ребята, вот эта задачка совсем начальный уровень считается да?
Аноним 28/03/16 Пнд 22:03:53  701454
>>701379
Да, легче уже ничего нет.
Аноним 28/03/16 Пнд 22:05:58  701456
>>701379
Ультралегкая
Аноним 29/03/16 Втр 00:15:02  701610
>>701379
Нихуя. Мне за эту задачу на собеседовании Senior Ruby Developer дали.
Аноним 29/03/16 Втр 11:40:52  701829
>>701454
>>701456
>>701610
решение написали быстро
Аноним 29/03/16 Втр 12:03:57  701839
>>701111
бамп вопросу
Аноним 29/03/16 Втр 12:40:53  701868
>>701829
Аноним 29/03/16 Втр 12:41:32  701871
>>701829
ИЗИ
З
И

https://ideone.com/OT04ZM
Аноним 29/03/16 Втр 12:49:26  701879
>>701111
Ну так возьми да посмотри задачки предыдущих олимпиад.
Аноним 29/03/16 Втр 13:30:18  701897
>>701871
Ух ты, какой лвл? За какой срок научился так решать?
Аноним 29/03/16 Втр 13:46:43  701915
>>701897
>>685237

Изначально решение выглядело проще, но длиннее. Я решил его вручную пообфусцировать в целях траллинга.
Аноним 29/03/16 Втр 18:11:50  702190
>>701915
Участвуешь в асm-тусовке?
Аноним 29/03/16 Втр 18:43:42  702219
>>702190
Нет.
Аноним 29/03/16 Втр 22:14:27  702541
Бумп
Аноним 30/03/16 Срд 04:53:09  702780
>>701879
Смотрел. Для меня сложно. хочется поставить какую-то конкретную планку сложности задач, которую я должен уметь выполнять.
Аноним 30/03/16 Срд 11:34:01  702883
>>702780
Расскажи как вас тренируют, и какие достижения у тех, кто это делает? Какой город?
Аноним 31/03/16 Чтв 22:18:11  704503
Есть такая структура данных, которая мне быстрее, чем за линию уменьшит значения части элементов массива на 1?
Аноним 31/03/16 Чтв 23:22:01  704557
>>704503
Аноним 31/03/16 Чтв 23:22:37  704559
>>704503
Последовательной части?
Аноним 01/04/16 Птн 03:13:02  704663
>>704503
Формально нет, а так любое дерево с операциями над подотрезками: дерево отрезков, декартово дерево и тд. Уменьшают за логарифм, используются когда тебе надо сначала провести много операций и потом вывести ответ. Один элемент берётся за логарифм.

Также есть более простая штука, sqrt-декомпозиция, как бы дерево всего с 2 уровнями, соответственно по sqrt(n) потомков в вершине. Принцип тот же самый, что и выше, только изменение отрезка работает за корень, элемент берётся за единицу -> можно часто брать отдельные элементы.
Аноним 01/04/16 Птн 03:15:49  704665
>>701379
Нам такое в школе в 9 классе давали не траль, я тогда очень долго пыхтел
Аноним 01/04/16 Птн 06:02:54  704689
>>704665
Я тогда написал через конечный автомат, не зная что такое конечный автомат, лол.
Аноним 01/04/16 Птн 06:05:35  704690
>>704689
Ах да, по условию за О(n * m)
Аноним 01/04/16 Птн 13:12:52  704936
>>704690
А по памяти сколько? Можно же тупо массив заполнить, а потом выводить.
Аноним 01/04/16 Птн 15:04:12  705021
14595122521100.png (28Кб, 872x450)
Вот, например, задача на КФ. Вчера начал решать, сделал через рекурсию, но то и дело ловил WA и потом TLE. Через часов 5 сдался, спиздил решение у красного. Но чтобы только понять его решение, потратил час. Сейчас проснулся и пытаюсь по памяти воспроизвести его алгоритм (пока WA).
Вот скажите, как можно сразу учитывать все corner-кейсы и ебашить идеальное решение?
Аноним 01/04/16 Птн 15:32:07  705043
>>705021
Хм, а какие там крайние случаи? Мне видится, что задача решается за линию скользящим окном.
Аноним 01/04/16 Птн 15:43:44  705052
>>705043
Мое первое решение и было окно. Мало того, что надо учесть все выпуклости, так еще и по времени оно не проходит, как оказалось.
Аноним 01/04/16 Птн 15:49:28  705060
>>705052
И за линию окном никак. Отсечешь правую часть, а она может входить в решение, и наоборот. То есть надо делать два слайса: [left, right-1] и [left+1, right]. Рекурсия даже с сохранением значений не прошла.
Аноним 01/04/16 Птн 16:14:39  705081
>>705060
Непонятно, там же по идее надо жадно брать возрастающие элементы, как только встретится невозрастающий, запоминаешь его. Дальше, когда встретится следующий невозрастающий, то смотришь, что уже получилось и обрезаешь по первому невозрастающему, ну там около него. Разве не так? Там несколько случаев, правда, получается, какой из элементов увеличивать/уменьшать, но вроде вполне реализуемо.
Аноним 01/04/16 Птн 16:28:10  705084
>>705060
Находишь в массиве все возрастающие отрезки, включая участки длины 1.
Заносишь их границы в список вида [[1,3], [4,4], [5,10], [11,12], [12,12], ...]
Проходишься по списку отрезков, проверяя, можно ли склеить текущий отрезок с последующим изменением последнего элемента текущего отрезка, или первого элемента следующего.
Если следующий отрезок имеет длину 1, то надо также проверить, можно ли его изменить так, чтобы склеить текущий отрезок со следующими двумя.
После каждого удачного склеивания проапдейтишьь максимальную длину.
Аноним 01/04/16 Птн 16:46:34  705091
>>674231 (OP)
>i-ый участник
Как это читается?
Аноним 01/04/16 Птн 16:48:09  705092
>>705091
итый
Аноним 01/04/16 Птн 16:52:07  705097
>>705084
>Если следующий отрезок имеет длину 1, то надо также проверить, можно ли его изменить так, чтобы склеить текущий отрезок со следующими двумя.
Это не надо, затупил чёт.
Аноним 01/04/16 Птн 16:54:58  705099
>>705084
Дьявол в деталях.
Имеем массив [1, 3, 4, 3, 4].
Два возрастающих отрезка - [1,3,4], [3,4]. По твоей логике, изменив [1,3,4] на [1,3,2], его можно будет склеить с [3,4] и получить [1,3,2,3,4] длиной 5.
Аноним 01/04/16 Птн 17:01:26  705108
14595192869870.png (3Кб, 423x381)
>>705081
Запомнил i1, i3, i6. Увидел i7, посчитал длину i1-i6 и отбросил i1, ок. Но i1-i6 - невалидный отрезок.
Аноним 01/04/16 Птн 17:04:18  705112
>>705021
В общем, вот ссылка, чтобы не теоретизировать, попробуйте заслать свое решение. http://codeforces.com/contest/446/problem/A
Аноним 01/04/16 Птн 17:06:05  705116
>>705099
Ну понятно, что если мы хотим поменять элемент на позиции fixIdx, то надо проверять, что array[fixIdx+1] - array[fixIdx-1] >= 2

boolean isMergeable(range1, range2) {
   assert range1.end + 1 == range2.start
   if(range1.start == range1.end || range2.start == range2.end) return true
   //пробуем поменять конец первого отрезка
   if (array[range1.end + 1] - array[range1.end - 1] >= 2) return true
   //пробуем поменять начало второго отрезка
   if (array[range2.start + 1] - array[range2.start - 1] >= 2) return true
   return false
}
Аноним 01/04/16 Птн 17:32:09  705134
>>705116
Вроде нормально. Попробуй заслать полное решение.
И потом скажи, смог бы ты без подсказок сразу написать идеальное решение, прошедшее бы с первого раза.
Задача, судя по рейтингу А, легкая. Но вот как замечать такие штуки, это ппц. После часов отладки они уже бросаются в глаза, но не сразу же. По идее она должна решаться за 5 минут.
Аноним 01/04/16 Птн 17:45:26  705143
>>705134
Мне лень.
Аноним 01/04/16 Птн 17:49:34  705146
14595221749100.png (15Кб, 511x399)
>>705134
Решение красного было примерно таким: завел 2 вектора, в одном хранил числа, в другом - индексы предыдущих фейлов. Потом для каждого i смотрел предыдущий и предпредыдущий фейлы. И в зависимости от проверки вроде той, что выше, выбирал нужный отрезок от i до первого или второго фейла и обновлял максимум.
Аноним 01/04/16 Птн 17:54:22  705155
>>705146
По идее можно было бы вообще без второго вектора, тупо 2 переменных.
Аноним 01/04/16 Птн 18:04:57  705166
>>705146
На скриншоте олимпиадники as is. Попизди еще, что олимпиадники - элита программистов.
Аноним 01/04/16 Птн 18:14:44  705177
>>705146
Блять. Что тут написано то? Это на конкурс обфускции должно пойти. Одноразовый код
Аноним 01/04/16 Птн 18:40:26  705202
>>705108
В смысле, понятно, что так делать не надо. Тебе надо хранить текущий уровень, а не просто смотреть на предыдущий элемент, тогда тебя стопорнёт ещё на 5 элементе.
Аноним 01/04/16 Птн 21:09:39  705390
>>704690
>>704665
Вам в 9 классе давали О-нотацию?
Аноним 01/04/16 Птн 21:13:18  705392
И как же я завидую успешным олимпиадным задротам
Аноним 01/04/16 Птн 23:06:16  705460
>>705390
Да, была, не на продвинутом уровне, конечно. Просто примерное представление о зависимости времени работы от входных параметров. Вот когда после 10 класса нам рассказывали доказательство времени работы суффиксного автомата, это было трудно, да.

пилите перекат уже!
Аноним 02/04/16 Суб 22:30:01  706306
ПОКАТИЛИСЬ
https://2ch.hk/pr/res/706304.html

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

Топ тредов