24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

ОЛИМПИАДНОГО ПРОГРАММИРОВАНИЯ ТРЕД НАМБА 3

 Аноним OP 09/07/16 Суб 12:51:31 #1 №792098 
14680578921190.jpg
Настало время перекатить и такой тред.

Основные ресурсы с задачками:
codeforces.com - Клевый проект, чуть ли не еженедельные контесты. Система писькомерства рейтинга уровня ELO с Короткевичем 4к+. Задачки своеобразные, пилятся комьюнити, мало общего с задачками стандартного ACM, что продиктовано форматом соревнований. Так же codeforces выбирают площадкой для множества престижных соревнований уровня VK Cup, в тренировки заливаются все крупные контесты оффлайн.
acm.timus.ru - великолепный архив. Решишь 500 задач на тимусе - будешь гарантированно красным на кфе
informatics.mccme.ru - хорош для новичков
Дальше идут ресурсы, которые оп не юзал особенно по своему скудоумию:
acmp.ru - ничего сказать пока не могу
TopCoder.com - пендосский codeforces, регулярные контесты, открытые турниры и тому подобное
e-olymp.com - не знаю

FAQ
Что почитать?
Грэхэм, Кнут, Паташник "Конкретная математика"
Кормен "Алгоритмы. Построение и анализ"

Как вкатиться?
Читай книжки сверху, и решай как можно больше
____________________

Предыдущий тред тонет тут >>706304 (OP)

Шапка за пять минут, надеюсь треду жить, принимаются предложения по оформлению
Аноним 09/07/16 Суб 13:44:55 #2 №792138 
>>792098 (OP)
Решать на тимусе задачи по сложности от самых легких до сложных?
Аноним 09/07/16 Суб 13:46:52 #3 №792140 
Все знают, что такое счастливый билетик.

Например:
123456
Сумма первых трех 5, сумма последующих 15. Билет несчастливый.

111003
Сумма первых трех чисел 3. Сумма последующих чисел 3. Билет счастливый.

Задача, посчитать сколько счастливых билетов между 100000 и 999999.

Выиграет самый красивый код.
Аноним 09/07/16 Суб 15:57:52 #4 №792287 
print(50412)
Шах и мат
Аноним 09/07/16 Суб 16:26:06 #5 №792304 
>>792282
знатное говноедство, даже я уважаю
Аноним 09/07/16 Суб 16:29:17 #6 №792306 
http://ideone.com/CEDdGe
Аноним OP 10/07/16 Вск 00:36:06 #7 №792567 
>>792140
[code lang="python3"]sum(sum(map(int, (c for c in str(x)))) == sum(map(int, (c for c in str(y)))) for x in range(100, 1000) for y in range(0, 1000))[/code]

http://ideone.com/rHkZk5
Аноним 10/07/16 Вск 09:36:16 #8 №792666 
>>792140
http://ideone.com/SaQEJX
жаль, что не от 000000, так бы было сильно красивее
Аноним 10/07/16 Вск 12:58:21 #9 №792725 
14681447016250.png
Cамый годный вариант на чистом си
Аноним 10/07/16 Вск 13:05:15 #10 №792733 
>>792731
Так ты на код смотри, а не на расширения файла
Просто CLion все проекты считает как C++
Аноним 10/07/16 Вск 13:10:23 #11 №792738 
>>792098 (OP)
>codeforces.com
вроде отослал один, а он сыпится. нихуя не понимаю, где фак? ввод бинарный чтоль?
Аноним 10/07/16 Вск 13:11:54 #12 №792739 
>>792738
нет, все там в порядке
кидай свой код, может ты просто не умеешь в считывание значений
Аноним 10/07/16 Вск 13:20:40 #13 №792745 
>>792739
да вижу тут есть запускалка, потыкался, я так понял он в sdin пихает, а не в стартовые ключи - как я думал. хотя вроде логично, ведъ программа после ввода должна умереть?
Аноним 10/07/16 Вск 14:08:42 #14 №792780 
вот ещё момент не вкурил: есть ли гарантия что 1 read вернёт мне весь ввод или нужно ещё дрочить всё ли ввелось? видимо да чёт приуныл
Аноним 10/07/16 Вск 14:26:50 #15 №792801 
>>792098 (OP)
А смысл какой их решать?
Аноним 10/07/16 Вск 14:41:41 #16 №792818 
>>792745
В стартовые ключи это как. Там есть задачи с мегабайтами инпута, ключами не обойдёшься.
Твоя задача вывести правильный output и вернуть EXIT_SUCCESS.
>>792801
Для интереса, это в основном хобби. Есть побочные профиты типа "в яндексе любят олимпиадников". Для школьников также помогает попасть на всякие бюджеты, ещё проводятся соревнования с неплохими призами, но это надо сильно угореть по теме.
Аноним 10/07/16 Вск 14:53:25 #17 №792832 
>>792801
я вот просто хочу подрочить байтики. на время - не интересно.
Аноним 10/07/16 Вск 15:03:11 #18 №792838 
>>792818
>Там есть задачи с мегабайтами инпута, ключами не обойдёшься.
ну наверно тоже верно, но можно было файлами заделать - а то ведь скорость будет сильно зависеть от того как реализован инпут в языке - а оно очень разнородно.
Аноним 10/07/16 Вск 15:46:25 #19 №792866 
>>792818
>хобби
Таки да, если не дрочиться по 2-3 5-часовый тренировки в неделю чтобы стать чемпионом мира.
Школьнику однозначно имеет смысл угореть, я сам жалею, что не хватало мотивации/не всегда мог себя заставить ботать в школьном возрасте, победителя всероса а не призера взял бы с легкостью. Все равно это лучше чем проебывать время на каэску какую-нибудь.
Поступление в любой топовый универ халявное, опять же.

Студентам активно задрачивать смысла нет, если не целиться на финал АСМ. Но таки полезные эффекты в виде "быстро решать задачки на собеседовании в Yandex/Google" возникают.
Ну еще, если не совсем донный, да и универ не совсем парашный, можно нахаляву за счет универа то есть ездить по всяким соревнованиям как и в пределах рашки, так и заграницу.
Аноним 10/07/16 Вск 16:11:44 #20 №792879 
>>792838
Раньше делали с файлами, но постепенно от этой практики отказались, может быть чтобы полностью избавиться от еботни с правами доступа. Кроме того, тебе же удобнее, сколько WA было получено на неверном названии файла… Причём в некоторых случаях это оказывалось решающим фактором.

>>792866
СЪЕЗДИЛ НАХАЛЯВУ
@
В ПЕТРОЗАДРОТСК
Аноним 10/07/16 Вск 16:59:49 #21 №792919 
>>792879
Ну да, это само собой. А еще Москву, Париж, Будапешт, Белград и Катовице (Польша). И везде билеты + проживание - за счет универа
Аноним 10/07/16 Вск 17:04:46 #22 №792922 
>>792879
А сейчас люди получают WA на том, что ОЙ А ТУТ ФАЙЛЫ НУЖНЫ. Или ОЙ Я ФАЙЛЫ НЕ ЗАКОММЕНТИЛ (хотя нормальные пацаны юзают препроцессор для этого).
Хотя без файлов таки удобнее, да, жаль, что не везде так сейчас
Аноним 10/07/16 Вск 17:38:03 #23 №792938 
Добавьте в шапку http://dl.gsu.by/
Сайт крут тем что там дохуй задач и он показывает количество пройденых тестов. Даже на сами тесты можно посмотреть.
Аноним 10/07/16 Вск 18:09:56 #24 №792952 
>>792922
но вооще, где-нибудь в лине можно было бы перехватывать пару функций в libc и на любое имя файла давать один путь. наверняка и в винде такое можно провернуть.
Аноним 10/07/16 Вск 18:14:25 #25 №792953 
Самый опущенный тип айтишников это олимпиадники.
Аноним 10/07/16 Вск 18:17:43 #26 №792956 
>>792733
> объявление счетчика цикла for в цикле for
> чистый Си
Аноним 10/07/16 Вск 18:43:33 #27 №792968 
>>792956
Опа, дед вылез.

>>792953
Толсто.
Аноним 10/07/16 Вск 18:45:54 #28 №792969 
>>792919
В Москву эту куда, на МФТИшные сборы да на четверть, если рядом живёшь?
Аноним 10/07/16 Вск 18:55:48 #29 №792981 
>>792969
Да, МФТИшные сборы, они самые. Сам из Питера, поэтому четверть пишу у себя
Аноним 10/07/16 Вск 19:34:22 #30 №793026 
сап, вопрос такой
вот на соревах стоят ограничения по памяти
но
в jvm языках же сама jvm автоматом отжирает до пизды памяти
получается jvm-блядки априори сразу сосут?
Аноним 10/07/16 Вск 19:39:58 #31 №793033 
>>793026
Да. Алсо, ты ещё забыл про инициализацию машины, тоже время отжирает. Выбор языка в любом случае за тобой + ситуации, когда задача решается на С и не решается джавой, крайне редки.
Аноним 10/07/16 Вск 19:45:18 #32 №793038 
олсо я совсем зеленый не понимаю пока как вкатиться
видел советуют книгу Шеня, она ок?
Аноним 10/07/16 Вск 19:47:48 #33 №793042 
>>793033
Это в случае, если ТЛ для Джавы стоит раза в 2 больше, что некоторые Online Judges делают по дефолту. А вообще зависит еще и от автора. Если он напишет какое-то заоптимизированное решение на плюсах и поставит жесткие ТЛи чтобы отсечь другое решение с чуть большей асимптотикой, то Джавакодеры соснут
Аноним 10/07/16 Вск 19:52:32 #34 №793047 
>>793038
Иди сразу на кодфорсы, читай параллельно емакс, дорешивай задачи и читай разборы. Для начала сойдёт, когда дело дойдёт до уровня суфавтоматов, уже сам разберёшься, что делать.

>>793042
СОКОБАН)))0)
Аноним 10/07/16 Вск 20:01:37 #35 №793052 
Зачем нужно олимпиадное программирование, если все держится на библиотеках и фреймворках? Оно же абсолютно не нужно в реальном мире. Лучше потратить время не на подготовку и дрочку алгоритмов, а на прикладную разработку и на свой гитхаб.
Аноним 10/07/16 Вск 20:01:50 #36 №793053 
>>792098 (OP)
В спортзал и к стилистам всех четверых. Футболки блядь на халка, пошить соразмерные. Крайнему слева в жопе похудеть, перестать жрать говно, перейти на салатики и мясо. Бородачу как минимум выровнять бороду.
Аноним 10/07/16 Вск 20:02:36 #37 №793056 
>>793047
друг, где читать разборы? я заходил на рашен кап чето там, но там объяснение мне показалось уже для чуваков которые прорешали пару десятков контестов
Аноним 10/07/16 Вск 20:09:15 #38 №793060 
>>793056
На кодфорсах почти к каждому контесту пилят разбор авторы. Кроме этого, не стесняйся в случае чего спрашивать в комментах: пост вынесет на первое место в секции комменты, его увидят и ответят с вероятностью 99%.

>>793052
>абсолютно
Радикально. В многих областях алгоритмы необходимы, пусть и не всем разработчикам.

>>793053
Котёнка лучше не трогать, где ещё такое встретишь, при том что он относительно молод.
Аноним 10/07/16 Вск 20:11:40 #39 №793063 
>>793052
Писали же кучу раз
Школьникам есть однозначные профиты которые не очень сложно получить, да и олимпиадки на таком уровне таки сильно влияют на прогерские навыки
Студентам - хобби, помощь на собеседованиях.
Да и полезно таки некоторые алгоритмы писать самому, чтобы понять как работает что-то. Опять же, навыки писать оптимальный код на плюсах
Аноним 10/07/16 Вск 20:12:34 #40 №793065 
>>793060
Я не говорю про алгоритмы, они то очень нужны, я говорю про олимпиадную дрочку, которая вырабатывает плохой стиль кода (попробуй попиши читаемый код на время) и бесполезна в реальном мире.
Аноним 10/07/16 Вск 20:27:35 #41 №793073 
>>793065
А, ну в этом плане может быть.

Могу поспорить по следующим пунктам:
1. В целом развитие понимания, как всё работает, неасимптотическая оптимизация как, например, std::ios::sync_with_stdio
2. Навык дебага сложных конструкций.
3. Умение писать код быстро и правильно, то есть держать в голове много деталей

Отдельно скажу, что после многих лет олимпиад в проектах всё пишу максимально красиво, по другому уже и не хочется, но тут уже у всех своё. По крайней мере можно сказать, что само понимание красивого кода приходит после взаимодействия, а лучше написания некрасивого.
Аноним 10/07/16 Вск 20:35:13 #42 №793082 
>>793073
>как, например, std::ios::sync_with_stdio
Хуевый пример, если честно. В реальной жизни хрен понадобится
Аноним 10/07/16 Вск 22:45:36 #43 №793210 
>>793082
Хуёвый, но про плюсы тут особо ничего и не расскажешь. Хотя в целом вопрос I/O в C/C++ довольно занятный.

Вот про питон можно долго говорить, там абсолютно неочевидные вещи происходят.
Аноним 11/07/16 Пнд 17:49:13 #44 №793658 
Ребят, а я вот наоборот олимпиадник, а в промышленном полный ноль :с
Аноним 11/07/16 Пнд 20:17:37 #45 №793729 
>>793658
Че ты врешь?
Аноним 11/07/16 Пнд 22:01:23 #46 №793817 
>>793658
Ну ты же наверняка понимаешь почему так, или есть хотя бы предположения.
Просто не нравится?
Вполне вероятно, что ты просто мало промышленно кодил, тогда это нормально. В олимпиадках ты ж тоже не сразу начал норм участвовать наприер
Аноним 13/07/16 Срд 18:44:17 #47 №795326 
>>792098 (OP)
>Конкретная математика
первая же задачка - мой пердак в небесах, ответ на неё - подлетаю к юпитеру. это просто пиздец какой-то.
Аноним 13/07/16 Срд 20:04:04 #48 №795372 
Не смог решить вторую по сложности с начала задачу на тимусе.
Задавайте свои ответы
Аноним 13/07/16 Срд 20:44:26 #49 №795402 
>>795372
обратный корень?
она сложная так-то, там на пушбэк поп
Аноним 13/07/16 Срд 20:47:43 #50 №795406 
>>795402
что такое пушбэк поп?
я на си пытался решить
Аноним 13/07/16 Срд 23:32:19 #51 №795516 
>>795402
Блять, ты тролль или ты серьезно?
Пиздец просто, >на пушбэк поп
Техника имени Семена, блять. Это как про любую задачу сказать "это задача на инт мейн", поеботень полная

>>795406
Тебе надо знать, что такое массивы, как считывать-выводить вещественные числа, и как извлекать корень.
Первое - это лучше погугли и почитай в нормальном месте туториалы по языку, если таких основ не знаешь
Второе - считывать так:
double a;
scanf("%lf", &a);
и писать
printf("%f", a)
На самом деле, это верно для 11+ стандартов, в старых стандартах и читать и выводить с помощью %lf вроде
Третье это
#include <math.h>
...
a = sqrt(23.9);
Аноним 14/07/16 Чтв 20:00:58 #52 №796208 
>>795326
кинь задачу
Аноним 14/07/16 Чтв 20:03:39 #53 №796211 
>>795372
Я максимум решал 1010+ сложности на тимусе. Я успешнее
Аноним 14/07/16 Чтв 21:38:44 #54 №796271 
14685215247840.jpg
>>795516
Аноним 14/07/16 Чтв 23:25:13 #55 №796352 
Как найти кратчайший маршрут между двумя вершинами в бинарном дереве?
Аноним 15/07/16 Птн 00:21:27 #56 №796398 
>>796352
Что такое бинарное дерево?
Я не понимаю зачем обсираться в присядку, одновременно обмазываясь говном и дрочить на коколимпидаки и нахуй не нужные алгоритмы
Аноним 15/07/16 Птн 17:46:59 #57 №796832 
>>796398
>Что такое бинарное дерево?
На пике.

>>796427
>единственный маршрут
Из 9 в 2 можно идти пом пути 9 4 2 1 2.
>Находишь всех предков обоих вершин.
Не эффективно. Должен быть способ быстрее.
Аноним 15/07/16 Птн 17:47:20 #58 №796833 
14685940402550.gif
>>796832
пик забыл
Аноним 15/07/16 Птн 19:02:57 #59 №796909 
>>796903
А нет его в памяти. Даже размер не известен. но в long long влазит. Выглядит как на той картинке. Наверно просто максимальный надо делить на 2 пока они не сравняются.
Аноним 15/07/16 Птн 19:13:41 #60 №796917 
>>796914
Числа между которыми маршрут прокладывать. Вывести нужно сам маршрут.
Аноним 15/07/16 Птн 19:20:12 #61 №796921 
>>796920
>Похоже, что это задача на пушбэк.
Скорей всего на int main() и return.
Аноним 15/07/16 Птн 19:26:52 #62 №796926 
14686000131070.png
>>796920
Ага. И я уже понял как решать. Поэтому спасибо и пока.

>>796921
Ну это же не вся задача.

на пике моё предыдущее решение которое в спешке писал
Аноним 15/07/16 Птн 19:42:13 #63 №796935 
>>796352
1. В любом дереве маршрут всегда единственный, иначе бы там были циклы.
2. Задача сводится к нахождению наименьшего общего предка двух вершин, которую можно решить например алгоритмом Тарьяна.
Аноним 16/07/16 Суб 04:47:18 #64 №797322 
>>796208
То, что все лошади одной масти, можно доказать индукцией
по числу лошадей в определенном табуне. Вот так:
„Если существует только одна лошадь, то она своей масти,
так что база индукции тривиальна. Для индуктивного пере-
перехода предположим, что существует п лошадей (с номерами от
1 до п). По индуктивному предположению лошади с номера-
номерами от 1 до п — 1 одинаковой масти, и, аналогично, лошади с
номерами от 2 до п имеют одинаковую масть. Но лошади по-
посредине с номерами от 2 до п — 1 не могут изменять масть в
зависимости от того, как они сгруппированы,—это лошади, а
не хамелеоны. Поэтому в силу транзитивности лошади с номе-
номерами от 1 до п также должны быть одинаковой масти. Таким
образом, все п лошадей одинаковой масти. чтД*
Есть ли ошибка в приведенном рассуждении и какая имен-
именно?

>>795392
просто это математика, мне сложно, нужно по другому мыслить, немного перестроить голову.
Аноним 16/07/16 Суб 14:58:20 #65 №797533 
>>797322
Это же очевидно, неверная база индукции. Самый первый переход для n=2 не работает, базой должен быть именно этот случай, что невозможно.
Аноним 16/07/16 Суб 14:59:05 #66 №797534 
>>796935
Тарьян offline, лучше всё-таки на sparse table делать.
Аноним 16/07/16 Суб 22:35:37 #67 №797948 
Сап, посоны, пишу алгоритм Дейкстры. Что я делаю не так? Должно выводить 24 3 15, а выводит 24 32 20. Нумерация вершин с единицы.

https://ideone.com/eGhmMK
Аноним 16/07/16 Суб 23:04:00 #68 №797964 
>>797948
Граф ориентированный или нет? У тебя в коде он ориентированный, а в задаче как? Видимо, в ней он неориентированный, тогда надо делать
adj_list[begin].push_back (make_pair(end, weigth));
adj_list[end].push_back (make_pair(begin, weigth));
У тебя нет второй строчки
Аноним 16/07/16 Суб 23:11:00 #69 №797969 
>>797964
Неориентированный, и еще допустимы мультирёбра, но в тестовых данных для примера мультирёбер нет. Какие изменения в алгоритме надо сделать, чтобы обрабатывать мультиграфы?
Аноним 16/07/16 Суб 23:17:02 #70 №797975 
>>797969
Эм. Никаких (зачем?). А вот тот фикс, что я предложил, сделать таки надо.
Аноним 16/07/16 Суб 23:31:52 #71 №797980 
>>797975
Да, этот фикс помог. Матрица неорграфа симметричная, и списки тоже делаются симметрично.

Говорят, что мультиграф надо немного иначе обрабатывать.
Аноним 16/07/16 Суб 23:34:29 #72 №797981 
>>797980
Нет, не надо. Лишние ребра тебе ничего плохого не делают: ты все равно в итоге выберешь из всех мультиребер ребро с наименьшим весом. В принципе, если их совсем много, то можно когда строишь граф, просто среди всех ребер, соединяющих одинаковые пары вершин, оставить только ребро с минимальным весом, но алгоритм будет работать корректно и без этого
Аноним 16/07/16 Суб 23:40:17 #73 №797982 
>>797981
Блин, тогда я даже не знаю, почему программа проходит все тесты, кроме двух.

https://ideone.com/pJfxfM
Аноним 16/07/16 Суб 23:49:21 #74 №797984 
>>797982
А, скорее всего, я вывожу INF там, где по условию надо выводить -1. Сейчас проверю, должно помочь.

И все-таки странно, что авторы обращают внимание на то, что могут попадаться мультиграфы.
Аноним 17/07/16 Вск 00:12:11 #75 №798007 
>>797984
Ну например это может быть важно в случае, если человек юзает матрицу смежности вместо списка смежности хотя тогда бы по TL бы не прошло скорее всего. И, как правило, в задачах по умолчанию граф простой, поэтому выделение того, что есть кратные ребра, является некоторым правилом хорошего тона, можно сказать.
Аноним 17/07/16 Вск 15:32:03 #76 №798379 
Посоны, смотрите.
На двумерной плоскости имеем набор многоугольников с float координатами. Как определить, находится ли точка внутри какого-либо многоугольника?
Аноним 17/07/16 Вск 15:32:27 #77 №798380 
14687587473200.png
>>798379
Отклеилось.
Аноним 17/07/16 Вск 16:30:14 #78 №798438 
14687622147660.png
>>798398
Да, вспоминаю про трассировку луча. Но тогда ведь нужно проверять каждую грань каждого многоугольника?
Хотя можно применить небольшую оптимизацию и проверять только те многоугольники, с проекциями которых есть пересечения. Или еще лучше, с проекциями сторон которых есть пересечения.
В общем, спасибо, навел на мысли.
Аноним 17/07/16 Вск 16:33:41 #79 №798441 
14687624219120.png
>>798438
Точнее мы тут можем даже до одного сократить.
Аноним 17/07/16 Вск 19:55:19 #80 №798618 
>>798379
Если они выпуклые, то для каждого многоугольника можно делать проверку за log(число вершин)
Аноним 19/07/16 Втр 19:21:48 #81 №800440 
Если задачу на кодфорсе взломали, то это хорошо т.к. она бы завалилась на основных тестах, а так есть возможность узнать об ошибке и доделать её?
Аноним 19/07/16 Втр 20:27:21 #82 №800520 
>>800440
Именно так, если ты ее не заблокировал, конечно
Аноним 19/07/16 Втр 21:03:20 #83 №800574 
Когда разбор сегодняшнего кодфорса запилят (див2)? Где его смотреть?
Аноним 19/07/16 Втр 21:05:01 #84 №800579 
>>800574
Там разборы бывают? А див1 есть?
Аноним 19/07/16 Втр 21:17:56 #85 №800596 
>>800579
Вот тут сказали, что бывают: >>793060
Я хз, сегодня впервые написал.
Аноним 19/07/16 Втр 21:22:09 #86 №800605 
Чо, обидно, со второй задачей вышло?)))
Аноним 20/07/16 Срд 01:41:45 #87 №800887 
>>798398
Проще, но на этот способ любят делать контртесты. Надёжнее пускать в рандомном направлении.
>>798379
Я всегда использовал сумму полярных углов. Тема такая, для каждой грани ты считаешь, под каким ориентированным углом она видна из точки. Дальше считаешь сумму, если получилось 0, то ты снаружи, если 360 градусов – внутри. Случай на грани рассматривается отдельно.
>>800440
Бывает, что ломают решения, которые не валятся на тестах.
>>800574
Разбор появляется от сразу до нескольких дней, пали комменты к посту о контесте, там обычно спрашивают такие вещи.
Аноним 20/07/16 Срд 04:44:59 #88 №800954 
>>797533
мне сложно, а вот если есть задача - я могу её решить, как там написано, и так же индукцией доказать - не проблема. но когда меня спрашивают, например докажите что в задаче на столбы, используются все возможные комбинации - вообще не ебу как. да, для меня очевидно, что вот число и его бит может иметь 3 значения, тогда число с n бит имеет 3^n-1 возможных комбинации - даже не представляю как это доказывают.
Аноним 20/07/16 Срд 05:37:33 #89 №800963 
>>800960
> Почему 3, а не 2?
потому что это из усложненной задачи 2. но я не проверял в ответах заебало чувствовать себя говном

> Откуда -1?
потому что ноль не учитываем - там задача сформулирована так, вродъ.

> А ты попробуй индукцией
как? замкнутая форму уже есть, я её вывел из рекуррентной, опять же, из прошлой задачи. дальше то что?


> 2 Найдите кратчайшую последовательность перекладываний, перемещающих башню из n дисков с левого колышка А на правый колышек В, если прямой обмен дисками между А и В запрещен. (Каждое перекладывание должно производиться через средний колышек. Как обычно, больший диск нельзя
класть на меньший.)
> 3 Покажите, что в процессе перемещения башни при ограничениях из предыдущего упражнения нам встретятся все допустимые варианты размещения n дисков на трех колышках.
Аноним 20/07/16 Срд 05:52:25 #90 №800966 
>>800963
>как? замкнутая форму уже есть, я её вывел из рекуррентной, опять же, из прошлой задачи. дальше то что?
в смысле, я человек тупой, не математик, и не имею этот склад ума, я так понял, что индукция способ доказать что замкнутая форма формулы верна - путём поставления её в рекуррентную.

n > 0
T(0) = 0
T(1) = 1
T(n) = T(n-1)@3 + 2

T(n) = 3^(n)-1

T(n) = T(n-1)@3 + 2 = (3^(n-1)-1)@3 + 2 = 3^n-1 <- это

или что под этим ещё понимается?
Аноним 20/07/16 Срд 05:56:18 #91 №800967 
>>800966
> T(1) = 2
Аноним 20/07/16 Срд 06:55:43 #92 №800977 
>>792098 (OP)
2 справа бы трахнул нет
Аноним 20/07/16 Срд 06:56:26 #93 №800978 
Т.е слева -_-
Аноним 20/07/16 Срд 14:04:00 #94 №801184 
>>800954
Ничего не понял, кинь условие задачи, или что ты там доказываешь.
Аноним 20/07/16 Срд 15:31:03 #95 №801272 
>>792098 (OP)
>Грэхэм, Кнут, Паташник "Конкретная математика"
Этой книги достаточно, чтобы понимать анализ алгоритмов, всякие асимптоты и прочее из следующей книжки? Или придется до кучи ещё математики наверстать? Мой уровень если что на уровне девятиклассника, лол.
Аноним 20/07/16 Срд 16:17:15 #96 №801315 
>>801308
Угу. А асимптотика там обсуждается аж в последней главе.
Как я и думал, все эти алгоритмы и интеллектуальные игры с ними для элиты, которую с рождения обучают не тому, что дают в обычной быдло-школе. Пойду дальше в дотку катать.
Аноним 20/07/16 Срд 17:50:10 #97 №801396 
>>801315
Просто начни с книжек попроще. "программирование: теоремы и задачи" Шеня, а потом вот это http://codeforces.com/blog/entry/12314
Ну и перед этим учебник школьный по математике, если совсем неуч.
Аноним 20/07/16 Срд 21:51:23 #98 №801628 
>>801396
Спасибо. Я настолько тупой, закончил школу, а не могу решить задачи с acmp.ru которые сложнее 30% по их шкале.
Аноним 20/07/16 Срд 23:01:20 #99 №801684 
Зарегался на этом вашем кодефорсес. Где там выбирать задачи по уровню сложности и тематике?

Алсо, есть там что-нибудь по преобразованию Фурье?
Аноним 20/07/16 Срд 23:25:49 #100 №801705 
>>801684
Есть задача "ДНК роботов", поищи по названию.
Аноним 20/07/16 Срд 23:40:55 #101 №801721 
>>801684

>>801705
https://www.e-olymp.com/ru/problems/1841
Аноним 23/07/16 Суб 20:49:10 #102 №803666 
>>800887
>Бывает, что ломают решения, которые не валятся на тестах.
Ну вот. Ты меня запутал. Чётно обфусцирую решение на следующем контесте, а нечётно нет.
sageАноним 23/07/16 Суб 21:16:39 #103 №803678 
https://new.vk.com/rommikh?z=video33940993_171563293%2Fc9824696cca687188d%2Fpl_post_-108370559_63
Аноним 24/07/16 Вск 00:50:41 #104 №803822 
>>803666
После множества таких казусов с недавних пор все успешные похеки добавляются в набор финальных тестов.
Аноним 24/07/16 Вск 19:34:26 #105 №804385 
>>803678
круто, жаль что я не видел этого в школьном возрасте
Аноним 25/07/16 Пнд 23:28:34 #106 №805600 
Есть ли простой алгоритм быстро возвести матрицу в квадрат?
Вот две произвольные матрицы либо за эн в кубе умножать, либо хитрый алгоритм. А тут может попроще?
Аноним 26/07/16 Втр 00:00:29 #107 №805622 
>>805600
Нет, нельзя, насколько я знаю. Есть только, как ты сказал, хитрые алгоритмы, либо частные случаи типа метода четырёх русских.
Аноним 26/07/16 Втр 00:02:23 #108 №805626 
>>805622
Ну у меня вот как раз частный случай, две одинаковые матрицы умножаем.
Аноним 26/07/16 Втр 00:07:11 #109 №805633 
>>805626
Я понимаю, вот и говорю, что я, по крайней мере, никогда о таком частном случае ничего особенного не слышал. Пиши Штрассена или гугли научные статьи на эту тему.
Аноним 26/07/16 Втр 00:09:19 #110 №805635 
>>805626
>>805633
Впрочем, можешь ничего не гуглить, вот ответ на твой вопрос http://math.stackexchange.com/questions/20873/whats-the-fastest-way-to-take-powers-of-a-square-matrix
Аноним 29/07/16 Птн 00:28:47 #111 №807910 
бумп
Аноним 01/08/16 Пнд 11:02:44 #112 №810133 
>>792098 (OP)
Рассказываю, почему я бросил олимпиадное программирование. Когда я начинал, то думал, что там задачи чисто на смекалку, для решения которых не требуется никаких предварительных знаний. Но это оказалось не так. Есть определенное количество узкоспециализированных тем, например, динамическое программирование или древовидные структуры данных, в которых надо быть хорошо прошаренным, чтобы решать олимпиадные задачи. Если кто не понял, что я сказал, приведу такой пример: если вы попытаетесь доказать хотя бы теорему Пифагора, ничего о геометрии не зная вообще, то у вас ничего не выйдет. Так вот я задумался однажды, стоит ли задрачиваться в темах, которые котируются на олимпиадном программировании, если они мне скорее всего не пригодятся в работе. Лучше уж потрачу это время на изучение чего-нибудь более практичного.
Аноним 01/08/16 Пнд 20:27:52 #113 №810507 
>>810133
зря бросил, ящитаю
Аноним 01/08/16 Пнд 23:56:56 #114 №810676 
>>810507
Я бы не бросал, если бы было много свободного времени, но его нет.
Аноним 02/08/16 Втр 00:33:50 #115 №810715 
>>810133
Ты прав, в принципе, если не считать, что в некоторых местах типа яндекса и вк олимпиадников очень любят. Да и в целом на базовом уровне почти везде спрашивают, но базовый CS и так все должны знать просто по роду профессии.
Аноним 04/08/16 Чтв 09:53:40 #116 №812714 
>>810715
Тут замкнутый круг.
В "базовый CS" входит комбинаторика, теория чисел, графы, динамическое программирование. Это активно используется на олимпиадах и во всяких гуглах. Но никак не изучается глубоко в вузах (кроме парфеновской кафедры и еще схожих) и не применяется в рф-it. Кроме сам знаешь где. Тоесть олимпиадное программирование, или тот же Скиена, это единственный способ рф-студенту окунуться в то "а что же там пишут в гуглах, что у нас нет". Да и без олимпиадной подготовки ты будешь о-о-чень долго вникать во всякие crack the coding interview и elements of programming interview.
Аноним 04/08/16 Чтв 15:06:28 #117 №812961 
Аноны, подскажите алгоритм: дано произвольное количество 2d-вершин, нужно из них сделать многоугольник с непересекающимися гранями.
Аноним 04/08/16 Чтв 16:08:49 #118 №813017 
>>812961
построение выпуклой оболочки
Аноним 04/08/16 Чтв 17:38:14 #119 №813104 
14703214951200.png
14703214951201.png
>>813017
Вроде это не совсем то. Все точки должны быть задействованы.
Я написал примитивный алгоритм: проходим по точкам, отсортированным убывающе по y, и соединяем ближайшие по x, но иногда он фейлится.
Аноним 04/08/16 Чтв 18:07:12 #120 №813134 
>>813104
Берёшь самую нижнюю-правую точку, ставишь её как начало координат. Считаешь полярные координаты остальных точек относительно центра. Сортируешь по углу, обходишь в этом порядке.
Дядя Сэджвик с Курсэры так учил
Аноним 04/08/16 Чтв 18:26:09 #121 №813163 
>>813134
Я походу проще вариант нашел: пространство делится на 2 части по x (можно взять тупо width/2), слева и справа строятся ломаные кривые и потом соединяются.
Аноним 04/08/16 Чтв 18:26:53 #122 №813164 
>>813163
>ломаные линии
Аноним 04/08/16 Чтв 18:38:08 #123 №813177 
>>813163
Хотя тупо width/2 будет ошибкой, нужно чтобы хотя бы 2 точки было на одной из сторон.
Аноним 04/08/16 Чтв 18:40:58 #124 №813183 
>>813177
Хотя нет, полностью неправильно, лел.
Ладно, буду думать.
Аноним 04/08/16 Чтв 19:42:37 #125 №813245 
>>792098 (OP)
> эти плечи
Аноним 04/08/16 Чтв 19:50:50 #126 №813255 
>>813163
хуйня решение же очев
Аноним 04/08/16 Чтв 19:53:34 #127 №813260 
14703296149630.jpg
>>813245
матрас из денег всё справит
Аноним 04/08/16 Чтв 20:52:47 #128 №813287 
14703331673780.png
>>813255
Все нормас, быстрейшее из всех, O(n).
Проблема была только в разделении. Надо делить линией, которая проходит через самую верхнюю грань и через самую нижнюю. Теперь все без ошибок.
Аноним 04/08/16 Чтв 21:19:58 #129 №813300 
>>813287
Теперь докажи корректность.
По-моему у тебя просто жадная эвристика.
Аноним 04/08/16 Чтв 21:40:10 #130 №813319 
>>813300
Я думал о корректности.
Из любого набора разных точек можно сделать ломанную линию с непересекающимися кусками, соединяя точки одна за другой в одном направлении. Пересечений гарантированно не будет, если между точками в этом направлении нет других точек.
Мы получаем две ломанных линии, не пересекающиеся между собой. Вопрос только в том, можем ли мы безопасно соединить их концы. Ответ: да, т.к между концами больше нет других точек, т.к. мы заведомо взяли 2 верхние и 2 нижние точки и от каждой начали строить линию.
И все же это не n, а nlogn, т.к. надо сначала отсортировать точки в одном направлении.
Аноним 07/08/16 Вск 16:56:41 #131 №815449 
>>813319
Занятно, я всегда пользовался сортировкой по полярному углу. Сложность такая же, но алгоритм ка будто чуть попроще, нет двух частей, тупо сортировкой сразу достигаешь нужный порядок с другой стороны, может быть критична скорость работы с float
Аноним 09/08/16 Втр 23:00:48 #132 №816915 
Mathematica
(1/Pi) Integrate[((Sin[10x] )/Sin[x])^6, {x, 0, Pi}]
Счастливых билетов: 55252
Аноним 09/08/16 Втр 23:22:51 #133 №816923 
>>816915
Элегантно, только погрешность численного интегрирования точность подпортила.
Аноним 10/08/16 Срд 11:26:34 #134 №817083 
14708175944690.png
>>813287
А вот в таком случае ты что делаешь? Чёрное - как получается по твоему описанию, зелёное - как должно быть.
Аноним 10/08/16 Срд 12:30:05 #135 №817112 DELETED
В этом: https://www.hackerrank.com/w22 кто-нибудь участвует?
Аноним 10/08/16 Срд 18:18:05 #136 №817310 
>>816923
А интегрирование аналитическое, без погрешностей.
Хотя если оценить вид первообразной и по пределам оборвать, то можно свести все к вычислению 1109369452791600/20078358300
Аноним 11/08/16 Чтв 00:56:19 #137 №817555 
Зо o(n) низя т.к. если можно то можно числа за o(n) сортировать а так низя потому что низя
Аноним 11/08/16 Чтв 10:41:19 #138 №817667 
14709012792020.png
14709012792021.png
>>817083
Нет, все верно у меня.
Главное не ошибиться с выбором лево-право у крайних отрезков. Я сначала выбирал тупо - если p1.x < p2.x, то p1 уходит влево, но это не всегда так. Пример на второй пикче.
Аноним 11/08/16 Чтв 11:36:21 #139 №817702 
14709045813960.png
>>815449
Понял твое решение, скорее всего, оно лучше.
Хотел придумать корнер-кейс, но сам же на него ответил. При равенстве угла, если он [0; 90], то сортируем по Y возрастающе, если же больше, то убывающе.
Аноним 12/08/16 Птн 13:41:45 #140 №818434 
>>817702
Можно и по убывающей, без разницы, главное чтобы в одном направлении.
Аноним 12/08/16 Птн 13:44:17 #141 №818436 
>>818434
Допустим, мы проходим против часовой стрелки от нижней точки. Если мы сначала возьмем по убывающей, то получатся вершины 1-3-2, что уже ошибка, я это имел в виду.
Аноним 18/08/16 Чтв 03:02:04 #142 №822144 
Есть правильная скобочная последовательность и внутри неё есть мусорные данные. Для удобства есть ассоциативный массив в котором каждой зная координату одной скобки можно найти координату соответствующей ей скобки. Иногда нужно удалять мусорные данные. И когда это происходит, то размер строки и координаты некоторых скобок меняются, а ассоциативный массив нет. Как максимально быстро вернуть корректные значения в ассоциативный массив?
Пример
s="aa(bbcccb)"
В массиве m лежат 2:7 и 9:-7. Это значит что скобке s[2] соответствует скобка s[2+7], а скобке s[9] скобка s[9-7].
Теперь если удалить все c, то получим s="aa(bbb)" И массив надо будет 2:4 и 6:-4. Скобок может быть больше поэтому на некоторые это удаление влияет, а на некоторые нет.
Формат записи в ассоциативном массиве менять нельзя. т.к. это не совсем ассоциативный массив и в нём ещё хранится инфа по мусорным данным которые не совсем мусорные
Нужно делать это максимально быстро. Память не жалко т.к. размер строки около 10к символов. А вот время нужно экономить т.к. важна каждая миллисекунда.
Как решить?
Аноним 18/08/16 Чтв 17:19:22 #143 №822569 
>>822144
Что за "ассоциативный массив", он совсем медленный, или можно к нему обращаться лишний раз в процессе апдейта?
Пока вижу так: держим массив с координатами всех скобок. Когда надо делать апдейт находим бинарным поиском первую скобку правее места удаления, и начиная с неё до конца массива фиксим каждую скобку.
То есть:
1. Уменьшаем адрес каждой скобки на размер удалённого куска. Скорее всего это подразумевает удаление записи из ассоциативного массива, и добавление новой с другим ключом.
2. Если это закрывающая скобка, а соотв. открывающая левее точки удаления, то обновляем сдвиг в открывающей.
3. Уменьшаем адрес скобки в нашем вспомогательном массиве на размер удалённого куска.
Аноним 18/08/16 Чтв 18:13:17 #144 №822616 
>>822569
>он совсем медленный
Совсем быстрый. За константу обращение.
>бинарным поиском
И как им искать скобки в не отсортированной строке?
И работает это долго и не правильно.
Вот тест ((abc)()) После удаления любой буквы скобки выделенные жирным трогать не надо. Пока думаю делать вспомогательный массив где отсортированы координаты всех закрывающихся скобок.
Вот например тест "((a)b(c)d)" и удаляем b. В вспомогательном массиве будет 3 7 9. С помощью ассоциативного узнаём координату закрывающейся скобки и проверяем есть ли между ними удалёный элемент. Так должно быть быстрее, но после каждого удаления заново по массиву проходить не хочу, а как после всех удалений применить этот метод не знаю т.к. удалять можно несколько элементов подряд и их потом ещё запоминать придётся.
Аноним 18/08/16 Чтв 19:58:10 #145 №822710 
>>822144
Всё зависит от требований: много запросов – меняй за линию, это как угодно можно делать, быстрее за раз всё обновить нельзя, будешь на запросы за 1 отвечать. Много удалений, мало запросов – делай вспомогательный массив "текущей версии" для каждого индекса, и вспомогательное дерево типа дерева отрезков для "обновления" индексов за логарифм и взятия за логарифм (с дальнейшей записью в оригинальный массив и обновлением номера версии, чтобы между вырезаниями только один раз каждый индекс заново считать).
Аноним 18/08/16 Чтв 20:03:19 #146 №822716 
>>822710
А как сделать чтобы пока поступают запросы просто заменяешь символы на пробел, а потом за раз всё удаляешь и скобки корректируешь? Это быстрее всего должно работать. Запросы обычно не большие. Несколько байт. Но может много запросов на небольшой участок строки быть.
Аноним 18/08/16 Чтв 20:07:32 #147 №822719 
>>822616
>И как им искать скобки в не отсортированной строке?
Для "((abc)())" массив индексов скобок будет [0, 1, 5, 6, 7, 8]
как видишь он отсортирован.

>И работает это долго
Удаление символа в середине строки это уже медленно.

>и не правильно
>После удаления любой буквы скобки выделенные жирным трогать не надо.
В ассоциативном массиве были записи 6:1 и 7:-1, а должны стать 5:1 и 6:-1, само по себе оно не обновится.
Аноним 18/08/16 Чтв 21:39:46 #148 №822781 
Анончики, может у кого есть нормально отформатированная Конкретная математика в mobi/epub или прочем ebook формате? Я искал, форматировал и все тщетно. А пдф читать на 6 дюймовом киндле не шибко удобно и приятно. Заранее спасибо за ответ.
Аноним 21/08/16 Вск 14:29:03 #149 №824539 
>>812961
http://e-maxx.ru/algo/convex_hull_graham
Аноним 21/08/16 Вск 20:15:14 #150 №824692 
Вчера писал свой первый раунд на Codeforces, почувствовал себя дауном. Первая задача простая, ну действительно, чего ее решать, давайте посмотрим остальные. Вторая про графы, чет как-то слишком длинное условие, сложна. Третья про пифагоровы тройки. И тут я засел. Родил какое-то стремное решение через числа Фибоначчи (спасибо Википедии за это), а оно зависает на всех нечетных, а на четных выдает не всегда верные ответы. В итоге два часа просидел над этой задачей, ничего не решил, а когда открыл разбор - охуел от простоты и изящества. Это лечится или мне навеки оставаться тупым?
Аноним 21/08/16 Вск 20:16:06 #151 №824693 
>>824692
Поступил на программиста, называется.
Мама, мама, я буду кодить!
Аноним 23/08/16 Втр 09:12:50 #152 №825552 
>>824692
лечится. одноклассник не умел решать ничего кроме a и иногда b, а через 1.5. года стал призером всероса.
Аноним 23/08/16 Втр 19:54:59 #153 №825960 
>>824692
А у меня в С неправильное решение принялось. Должен быть TL, а оно принялось. Там я рассматриваю 2 случая:
1) a - катет. Тогда a^2 = (c - b)(c + b). Перебираем все делители числа a^2 (факторизуем a и умножаем все степени на 2; всего делителей будет не больше нескольких тысяч). Для каждого делителя d решаем в натуральных числах систему
{
c + b = d
c - b = a^2/d
}
2) Если a - гипотенуза, то я перебираю b от 1 и до тех пор пока b^2 < a^2, то есть там в цикле может быть 10^9 итераций. Почему у меня нет TL, я не понимаю.
Аноним 23/08/16 Втр 20:07:18 #154 №825975 
>>824692
>>825960
> а когда открыл разбор - охуел от простоты и изящества.
Какое изящество, тут просто надо знать, что любое нечетное число можно представить в виде разности двух квадратов. Нормальный человек этого не знает, это знают только всякие дрочилы, которые нарешивают олимпиады по математике для школьников.
Аноним 23/08/16 Втр 20:48:10 #155 №826006 
>>825975
А если какие-нибудь методички, в которых подобные тайные знания раскрываются?
Аноним 23/08/16 Втр 22:11:02 #156 №826056 
>>826006
Не трать на это время, это полная хуйня. На cf есть нормальные задачи на какие-то определенные темы, решение которых помогает в понимании этих тем. То есть это задачи на какие-то алгоритмы или структуры данных, а не на знание того, что нечетное число можно представить в виде разности квадратов. Просто нужно уметь отличать хуету от нормальных задач.
Аноним 23/08/16 Втр 22:22:09 #157 №826059 
>>826006
скиена "олимпиадные задачи по программированию"

>>824692
Я как-то хантился в майкрософт, к Дену Расковалову.
https://www.linkedin.com/in/raskovalov/ru
Он говорит, что только масштабы и время. Тоесть кодфорсес к собеседованиям мало отношения имеет. Так что чтобы решать олимпиады нужно быть задротом и дрочить много именно задачки. Там может быть ад на теорию чисел и комбинаторику. Как в прожект ейлера. После 300 задачек начнешь уже решать без задней мысли. А это полгода дрочильни где-то.
Аноним 23/08/16 Втр 22:57:13 #158 №826076 
>>826059
Спасибо.
Аноним 23/08/16 Втр 22:58:23 #159 №826077 
>>826059
А что там на собеседованиях спрашивают? Понятно, что разглашать конкретную информацию нельзя, но разгласи неконкретную.
Аноним 23/08/16 Втр 23:26:40 #160 №826087 
>>826077
http://poincare.matf.bg.ac.rs/~jelenagr/ASP/testHeadHunter.pdf можешь начать тут, а потом careercup.com
Аноним 24/08/16 Срд 00:46:03 #161 №826116 
>>826087
послал бы нахуй за такие вопросы на собеседовании
Аноним 25/08/16 Чтв 08:04:01 #162 №826898 
>>826087
Говно. Не нашёл вопроса про то, в какую сторону едет автобус.
Аноним 25/08/16 Чтв 11:42:34 #163 №826995 
>>792098 (OP)
Здесь обсуждают олимпиаду для поступления в вузы ?
Аноним 26/08/16 Птн 13:56:43 #164 №827714 
Начал решать задачи на тимусе для закрепления знаний Си.
Как в Си вычислить корень 876652098643267843 ?
http://ideone.com/XVSbT2
Аноним 26/08/16 Птн 14:04:51 #165 №827719 
>>827714
long long int a;
самспросилсамответил
Аноним 26/08/16 Птн 14:09:40 #166 №827727 
>>827714
Пиздец быдлокод.
Аноним 26/08/16 Птн 14:56:52 #167 №827759 

ХОДИШЬ ТАКОЙ НА ОЛИМПИАДЫ, БЕРЕШЬ ПРИЗОВЫЕ МЕСТА
@
ПРИГЛАШАЮТ РАБОТАТЬ В ЯНДЕКС
@
ПОСЛЕ НАПИСАННОГО ТОБОЙ ОБНОВЛЕНИЯ У ВИНДОВС ПОЛЬЗОВАТЕЛЕЙ СЛЕТАЕТ ВИНДОВС СО ВСЕМ СОДЕРЖИМЫМ ДИСКА Ц
@
С ПОЗОРОМ УВОЛЬНЯЮТ
@
КАРЬЕРА В ИТ ДЛЯ ТЕБЯ ЗАКОНЧЕНА, ПИЗДУЕШЬ РАБОТАТЬ ДВОРНИКОМ
Аноним 26/08/16 Птн 15:50:35 #168 №827819 
>>827759
ПОСЛЕ ПОДМЕТЕННОГО ТОБОЙ ПОДЪЕЗДА ПОЛОВИНА ЖИТЕЛЕЙ ПОСКАЛЬЗЫВАЮТСЯ И ЛОМАЮТ НОГИ
@
С ПОЗОРОМ УВОЛЬНЯЮТ
Аноним 26/08/16 Птн 15:57:12 #169 №827826 
>>827819

@
НЕ ОСТАЕТСЯ НИЧЕГО ДРУГОГО, КАК СТАТЬ НАЕМНЫМ УБИЙЦЕЙ ЗА ДОЗУ ГЕРОИНА
@
ЦЕЛЬ ИЗЛЕЧИВАЕТСЯ ОТ БОЛЕЗНЕЙ ПОД ТВОИМИ УДАРАМИ
@
ВЫГОНЯЮТ БЕЗ ПЕНСИИ
Аноним 27/08/16 Суб 13:50:53 #170 №828637 
>>827727
Рекурсивная функция в две строки, решающая одну из первых задач с тимуса. Что доебался до него?
Разве что while я заменил бы на простой if
Аноним 28/08/16 Вск 09:31:19 #171 №829298 
На джаве кто-нибудь пишет? Поможете сопитимизировать? У меня TL.
http://codeforces.com/contest/709/problem/E
http://pastebin.com/pW573vzV
Время работы там O(n), в этом точно косяка нет. Я заменил рекурсию на while + stack, потому что до этого был stack overflow. То что инпут с помощью Scanner - это норм, потому что если бы инпут не успевал, у меня бы не доходило до stack overflow в первой версии. От лямбд я уже пробовал избавляться, тоже TL.
Аноним 28/08/16 Вск 09:52:07 #172 №829301 
>>829298
Хотя сейчас замерил, инпут занимает 2 секунды. Сейчас попробую сканер заменить на что-то побыстрее.
Аноним 28/08/16 Вск 11:27:38 #173 №829342 
>>813245
Широковаты. Я от своих тоже в бугурт впадаю.
Аноним 28/08/16 Вск 11:28:57 #174 №829344 
>>829298
Оберни System.in в BufferedReader
Аноним 28/08/16 Вск 11:34:57 #175 №829347 
>>829344
Сделал. Сначала не сдалось, но потом я еще обернул System.out в BufferedOutputStream и сдалось.
Аноним 28/08/16 Вск 17:18:51 #176 №829596 
Поясните зашквар или нет вставлять в резюме ссылку на свой профиль на codeforces? Устраиваюсь не в какой-нибудь яндекс, а обычным крудошлепом.
Аноним 28/08/16 Вск 17:53:29 #177 №829615 
>>829596
Какой рейтинг?
Аноним 28/08/16 Вск 17:54:51 #178 №829616 
>>829347
Не понял. А почему BufferedReader не помог? Какая выгода от BufferedOutputStream?
Аноним 29/08/16 Пнд 00:44:22 #179 №829999 
>>829616
Помог, где-то на полторы секунды быстрее стало, но этого было недостаточно.
> Какая выгода от BufferedOutputStream?
В этой задаче аутпут 400000 и выводится по 1 символу, а это очень долго. А buffered сначала ниче не выводит, а когда делаешь flush, выводит все сразу.
Аноним 29/08/16 Пнд 00:44:40 #180 №830000 
>>829615
Максимум 1650 было.
Аноним 30/08/16 Втр 23:19:59 #181 №831614 
>>825975
>знать, что любое нечетное число можно представить в виде разности двух квадратов. Нормальный человек этого не знает
Если ты не знаешь, что комбинаторный интеграл от 2n+1 равен n(n-1)+n, что ты вообще делаешь в этом треде?
Аноним 31/08/16 Срд 09:01:46 #182 №831764 
>>831614
Хуйня для дрочил или специалистов по комбинаторике. Вот ты сколько статей уже написал?
Аноним 31/08/16 Срд 20:47:25 #183 №832261 
>>831614
>комбинаторный интеграл
Чоблядь?
Интеграл от 2n+1 равен n^2+n+C, чо ты мне загоняешь? и что за хуйню ты написал, n(n-1)+n = n^2
Аноним 31/08/16 Срд 23:27:18 #184 №832469 
Это шутка была (про то, что все знают, что такое комбинаторный интеграл). Но то, что (n+1)^2 = n^2 + (2n+1) знают все, а если человек так давно раскрывал такие скобки, то хули он делает в олимпиадном программировании.

А комбинаторный интеграл это понятие тесно связанное с комбинаторной производной.
Комбинаторная производная определяется так: d(F(n)) = F(n+1) - F(n)
Видим, например, что к.п. от 2^n равна 2^(n+1)-2^n = 2^n, то есть 2^n выступает здесь в роли e^x.
Похожие правила работают и для полиномов.
d(n^2) = (n+1)^2 - n^2 = 2n+1, не очень приятное выражение получается.
Но если вместо обычных полиномов использовать полиномы вида n^(k_) = n(n-1)(n-2)(n-3)...(n - k + 1)
то к.п. берётся проще: d(n^(k_)) = k n^((k-1)_)
Например: d(n
(n-1)) = (n+1)n - n(n-1) = 2n
Тут есть ещё много разных вариаций, которые можно вывести, например, d(f(n) g(n)) = f(n) d(g(n)) +d(f(n)) g(n + 1) = f(n+1) d(g(n)) + d(f(n)) g(n)
выглядит почти как правило умножения для производных.

Польза от такой производной в том, что можно взять от неё комбинаторный интеграл. То есть по функции f(n) найти функцию F(n), такую, что F(n+1) - F(n) = f(n)
Зачем нужна эта штука? Допустим, мы хотим найти сумму
f(1) + f(2) + ... + f(k), для этого можно переписать эту сумму как (F(2) - F(1)) + (F(3) - F(2) + ... + (F(k + 1) - F(k)) = F(k+1) - F(1)
Магия - мы научились сворачивать ряды в closed-form формулу.
Пример: найти сумму 1 + 2 + 3 + ... + n
К.и. от n равняется n(n-1) / 2, значит ответ - (n+1)*n / 2 - 0 = (n+1)n/2
Пример 2: найти сумму 1^2 + 2^2 + 3^2 + ... + n^2
Чтобы проинтегрировать n^2 нужно сначала представить его в базисе n^(k_), а именно: n^2 = n^2_ + n, легко проверить: n^2 = n(n-1) + n = n^2
Берём интеграл от n^2_ + n, он равен n^3_ / 3 + n^2_ / 2
Раскрываем скобки: n(n-1)( (n - 2) / 3 + 1/2 ) = n(n-1)(2n - 1)/6
Подставляем границы, ответ равен (n+1)n(2n+1)/6 - 0
Подставляя n=2 и n=3 убеждаемся, что мы нигде не ошиблись.

Если интересно, можете таким способом найти сумму
k 2^k для k=1...n
Подсказка: интегрирование по частям.
Аноним 01/09/16 Чтв 13:00:20 #185 №832679 
Циановый даун с кодефорсеса цвета морской волны ищет боевого товарища, чтобы в соревновательно-помогательном режиме ботать прогу. По заявкам оставляю фейко-контакты
 Аноним 01/09/16 Чтв 13:42:21 #186 №832722 
>>832679
Это сколько, 1200-1400 что ли? Могу просто так тебе помочь если че, спрашивай. Я максимум был синим.
Аноним 01/09/16 Чтв 13:44:23 #187 №832725 
>>832722
1400 - 1600. У меня вопросов особо нет. Надо только надрочиться. А одному это уныленько.
Аноним 01/09/16 Чтв 16:11:42 #188 №832845 
>>832725
Ты хочешь сказать, что у тебя в городе нет ни одного места, куда можно ходить на тренировки по асм?
Аноним 01/09/16 Чтв 18:56:21 #189 №832963 
14727453811940.jpg
Аноним 01/09/16 Чтв 20:17:16 #190 №833063 
>>832845
Есть. Но этого разве достаточно?
Аноним 01/09/16 Чтв 22:16:31 #191 №833204 
>>792098 (OP)
Кажется правого кунца я видел в МИРЭА, он там курс по android ведёт.
Так ли это?
Аноним 01/09/16 Чтв 23:55:33 #192 №833281 
>>833204
Нет, я сомневаюсь, что Егор будет вести курс по Android в сраном МИРЭА.
Аноним 02/09/16 Птн 09:20:59 #193 №833376 
>>832963
> 5 лет назад
Тогда была другая система рейтинга, так что на тот момент он был прав.
Аноним 02/09/16 Птн 23:24:24 #194 №834027 
Самолет взлетает в X (целое, 0<=X<=23) часов по местному времени в часовом поясе номер M (целое, 0<=M<=23). После полета в течение K (целое, 1<=K<=12) часов он приземляется в часовом поясе номер N (целое, 0<=N<=23). Определите местное время в пункте приземления. Считать, что часовые пояса нумеруются с запада на восток.

Тупая задачка. Почему нельзя просто прибавить ко времени старта врем полета, а потом прибавить разность номеров часовых поясов?

Аноним 02/09/16 Птн 23:44:42 #195 №834035 
>>834027
Все, разобрался. Идите нахуй
Аноним 02/09/16 Птн 23:44:59 #196 №834036 
>>834027
А кто тебе сказал, что нельзя? Летал самолет или нет, значения не имеет, от этого разница во времени между часовыми поясами не изменится. Здесь просто спрашивается, какое время будет в другом часовом поясе через n-цать часов. И какое все это имеет отношение к погромированию?
Аноним 04/09/16 Вск 22:26:23 #197 №835570 
Эй, умники. Есть задачка. У нас имеется n целых неотрицательных чисел, чья сумма не превосходит 10^5. Еще есть некое m до 10^4. Все эти n чисел мы хотим представить в виде целых долей этого числа m, причем нецелые доли мы вольны округлять в любую сторону по желанию левой пятки. Я тут набросал тупой жадник, который, конечно же, доказывать не умею, и он отхватывает wa2. Жадник настолько тупой, что он все округляет вверх, а потом, переокругляет вниз пока не получим нужную сумму, равную m
http://ideone.com/3x53a2
Аноним 05/09/16 Пнд 22:47:14 #198 №836275 
>>835570
Дай ссылку на исходную задачу, потому что ты во-первых написал условие как мудак (блядь, неужели нельзя скриншот запостить хотя бы, и пару примером входа выхода), а во-вторых лучше засабмитить, чем какому-то петуху объяснять.
Аноним 05/09/16 Пнд 22:51:09 #199 №836278 
14731050696340.png
>>836275
Ну, вот тебе скриншот. А самой задачи на публичных тестилках я не видел. Свой жадник пока что я опровергнуть так и не смог
Аноним 05/09/16 Пнд 22:54:21 #200 №836282 
>>836278
Ну вот так-то лучше. Сам-то чувствуешь, что гораздо понятнее выглядит? Очевидная динамика же.
Аноним 05/09/16 Пнд 22:55:44 #201 №836283 
>>836282
Я, конечно, толком в динамику не умею. Но тут и намеков не вижу. Не просветишь?
Аноним 05/09/16 Пнд 22:58:10 #202 №836284 
>>836283
Хотя тут даже динамика не нужна, жадный алгоритм должен работать. У тебя, наверное, просто не проверяется, что если число нацело делится, то его двигать нельзя уже.
Аноним 05/09/16 Пнд 22:59:55 #203 №836287 
>>836284
Так ceil же не должен целое число округлять. Или там с точностью может быть лажа?
Аноним 05/09/16 Пнд 23:00:35 #204 №836289 
Ну динамика, если интересно, такая: f(arr[i:], amount) - можно ли набрать amount сумму, округляя как-нибудь числа начиная с i-й позиции, как в рюкзаке, и по времени проходит - 50е6. Только, повторяюсь, она тут не нужна.
Аноним 05/09/16 Пнд 23:01:29 #205 №836291 
>>836289
А ты потом даже от целых чисел берёшь и отнимаешь 1 на 25-й строчке.
Аноним 05/09/16 Пнд 23:07:53 #206 №836293 
>>836291
http://ideone.com/0pI4qN
Больше не отнимаю. Но как-то не.
Аноним 05/09/16 Пнд 23:08:04 #207 №836294 
>>836291
Высрал контрпример http://ideone.com/kRzC4I
Аноним 05/09/16 Пнд 23:09:43 #208 №836295 
>>836293
Не канает, см >>836294
Аноним 05/09/16 Пнд 23:14:39 #209 №836302 
>>836295
Да. Я уже вижу. Спасибо, мил человек
Аноним 06/09/16 Втр 04:54:59 #210 №836425 
Сколько сюда не захожу, так и не пойму, чем вы тут занимаетесь
Аноним 07/09/16 Срд 01:09:59 #211 №836961 
>>826995
Почему бы и нет.
>>836425
Спортом вестимо.
Аноним 07/09/16 Срд 01:33:45 #212 №836973 
>>836961
> Спортом вестимо.

Игра в доту — это спорт. Решение олимпиадных задач по программированию — это не спорт. Выводы делай сам.
Аноним 10/09/16 Суб 19:54:38 #213 №839646 
У всех cf лежит?
Аноним 10/09/16 Суб 22:29:12 #214 №839721 
>>839646
Нет
Аноним 11/09/16 Вск 21:17:36 #215 №840310 
>>839721
Пидора ответ.
Аноним 12/09/16 Пнд 18:45:50 #216 №840732 
Как научиться решать CTF?
Аноним 12/09/16 Пнд 20:56:18 #217 №840861 
>>840732
Приходишь на ctf. Дальше все понятно.

Серьезно. Обычно есть отборочные туры, где есть возможность гуглить
Аноним 12/09/16 Пнд 21:11:20 #218 №840875 
>>840861
Ладно. А что там знать и уметь надо?
Аноним 12/09/16 Пнд 21:14:30 #219 №840879 
>>840875
Идешь на отборочный тур и узнаешь. Там бывают разные задания: криптография, сети, крекинг етц
Аноним 16/09/16 Птн 22:01:19 #220 №843105 
14740524792770.png
Олимпач, я тебе задачу подвез. Пока из идей посортить стержни по максимальному расстоянию от конца до точки d, а потом как-то хитро посчитать. Хитро что-то не выдумывается
Аноним 17/09/16 Суб 00:32:17 #221 №843169 
>>843105
Допустим все числа нечетные, тогда просто расположим их так, чтобы их середины находились на оси x и будем зажигать от самого длинного к самому короткому. Допустим, нечетные, тогда то же самое.
Допустим есть четные и нечетные числа. Например, 2 стержня 4 и 5. Тогда придётся все числа той же четности, что и максимальное, зажечь с одного конца, чтобы сделать всех одной четности, а потом применить алгоритм из первого параграфа.
Аноним 17/09/16 Суб 01:07:28 #222 №843189 
>>843169
С четными и нечетными я хуйню написал.

Короче зажигаешь самый длинный стержень с двух сторон, а дальше изъебывайся как хочешь, но чтоб все в один момент лопнули. Это можно сделать.
В первую секунду зажигаешь самый длинный стержень с двух сторон, а стержни длины на 1 меньше - с одной стороны, во вторую секунду все стержни которые горят с одной стороны поджигаешь со второй, а все стержни на 1 меньше - с одной стороны. И так далее.
Аноним 17/09/16 Суб 11:27:27 #223 №843304 
14741008477480.png
>>843189
Вот это вот, судя по всему, верное решениие
Аноним 17/09/16 Суб 13:20:23 #224 №843355 
>>843304
А, там ещё и определённая точка должна загореться последней, вот я мудак.
sageАноним 20/09/16 Втр 18:08:42 #225 №845016 
>>797533
ты ебанулся? база индукции очевидно верная. переход не верен (при п=2)
Аноним 22/09/16 Чтв 22:31:13 #226 №846398 
Я умею искать гамильтонов путь в неорграфе динамикой по подмножествам, где вершин не больше 20. А вот теперь мне надо проверить наличие гамильтонова пути в ацикличном орграфе с количеством вершин вплоть до 10^5. Вроде простая задача должна быть. Думаю пока в сторону топсорта какого-то
Аноним 23/09/16 Птн 08:48:19 #227 №846526 
>>846398
Сравни длину длиннейшего пути с количеством вершин + 1.
https://en.wikipedia.org/wiki/Longest_path_problem#Acyclic_graphs_and_critical_paths
Аноним 23/09/16 Птн 09:40:10 #228 №846535 
>>846398
>>846526
Честно говоря не понимаю зачем пишут топсорт делать. Наверное чтобы достичь O(N) вместо O(N*log(n)).
По идее достаточно для каждой вершины предрасчитать списки входящих соседей (если вершин с пустым списком >1, то гамильтонова пути сразу нет), а потом пока есть нерассмотренные вершины берёшь рандомную считаешь расстояние от истока до этой вершины как максимум среди её входящих соседей+1. Применяешь алгоритм рекурсивно, не забывая про мемоизацию.
Короче как поиск кратчайшего, только длиннейшего.
Аноним 23/09/16 Птн 15:26:45 #229 №846674 
>>792725
Эх, щас бы в 2016 перебором задачу решать, вместо динамического программирования
Аноним 23/09/16 Птн 21:20:14 #230 №846934 
>>846526
Да, спасибо. Я пытался делать дфс, который брейкается, когда глубина рекурсии становится равна количеству вершин. Но как-то это получало ва5.
>>846535
Ты же понимаешь, что твои идеи на порядок сложнее и для осознания, и для написания. Топсорт - это одна строчка в дфсе
Аноним 23/09/16 Птн 21:31:17 #231 №846939 
Окей. Как быстро проверять достижимость каждой вершины из каждой по матрице достижимости? Вершин всего тысяча, но флойд не вариант, потому что там сверху еще будет логн от бинпоиска висеть. Граф плотный, поэтому бфс меня тоже смущает. Или нормально?
Аноним 23/09/16 Птн 22:04:23 #232 №846963 
>>846939
В матрице достижимости все элементы должны быть равны 1.
Аноним 23/09/16 Птн 22:08:11 #233 №846965 
>>846963
Действительно. Но это я, наверное, плохо выразился. Я еще подумаю, пожалуй
Аноним 23/09/16 Птн 23:19:10 #234 №847025 
>>846939
Исходную то задачу расскажи.
Аноним 23/09/16 Птн 23:22:00 #235 №847029 
>>847025
Вот эта: https://www.e-olymp.com/ru/contests/5045/problems/39900
Аноним 24/09/16 Суб 00:05:01 #236 №847052 
>>847029
>>846965
Я, кажется, придумал, что хочу по матрице смежности быстро строить матрицу достижимости
Аноним 24/09/16 Суб 11:47:54 #237 №847202 
>>847052
Подсказка, попробуй отсортировать ребра по весу.
Аноним 24/09/16 Суб 13:01:31 #238 №847245 
>>847202
Пиздец я проебался, думал граф неориентированный, тогда это просто бинпоиск и SCC
Аноним 24/09/16 Суб 13:18:36 #239 №847254 
Нужны две функции. Одна принимает английский неправильный глагол, а возвращает его первую форму, а вторая получает рандомное слово и составляет кучу других слов из таких-же букв. Какие есть способы это сделать быстро?
Аноним 25/09/16 Вск 02:33:39 #240 №847601 
>>846939
BFS/DFS, компоненты связности. Предподсчёт за V^2, дальше ответ за 1.
Аноним 14/10/16 Птн 02:56:34 #241 №856297 
бумп
Аноним 14/10/16 Птн 03:08:01 #242 №856298 
>>792098 (OP)
Пререквизиты для Кормена и Кнутопаташика есть ли? Скожите пожалуйста.
Аноним 22/10/16 Суб 03:24:59 #243 №861728 
Для Кормена только мозг нужен, ну там подумать иногда придётся. Кнутопаташника не читал.
Аноним 22/10/16 Суб 11:06:34 #244 №861784 
>>856298
У Кормена есть в конце книги поясняется за математику
Аноним 22/10/16 Суб 19:49:01 #245 №861959 
Парни, есть какой нибудь сайт, где перечислены основные олимпиадные алгоритмы? А то я знаю только викиалгоритмы, а он бесполезен для этого
Аноним 22/10/16 Суб 20:35:36 #246 №861999 
>>861959
e-maxx
Аноним 22/10/16 Суб 21:10:52 #247 №862023 
>>861999
огромнейшее спасибо
Аноним 23/10/16 Вск 12:01:08 #248 №862286 
>>861959
http://algolist.manual.ru/
Аноним 25/10/16 Втр 20:17:09 #249 №863521 
Что, как поживаете? Я вот тут недавно школьную командную олимпиадку писал. Суть в том, что я-то алгоритмов довольно много знаю, могу написать. Префикс, з функции, декартачи, до, всякие графы, хэши. Но, сука, проблема в том, что в команде я ничего не придумывал. Мне говорили: "пиши топсорт, потом проверяй наличие соседних ребер". Или: "Склей строчки, посчитай префикс функцию, пока суффикс совпадает с префиксом, удаляй их. Я, бля, даже условия оригинального не знаю.
Это все круто, но на личной олимпиаде не проканает. Неумение быстро выдумывать решения - это приговор? Или еще есть шанс до феврали задрочить задачки из первой полутысячи тимуса?
Аноним 26/10/16 Срд 17:54:01 #250 №864053 
Есть программа с кучей функций. У каждой функции есть название. Известно количество обращений к каждой функции за последнее время.
Надо назначить функциям однобуквенные хоткеи так, чтобы сумма чисел обращений к функциям, которым назначены хоткеи, была максимальна.
Хоткеем функции можно назначить только букву, входяшую в её название.
Знаю про венгерский алгоритм, но у меня вес дуги из функции в каждую из допустимых клавиш одинаков. Есть ли что-то быстрее для такого случая?
Аноним 26/10/16 Срд 18:07:05 #251 №864060 
>>863521
на то в команде всегда и есть два прогера, один комп, и один математик который придумывает решения, сечешь?
Аноним 26/10/16 Срд 22:57:25 #252 №864257 
>>864060
Да. Но мне до студенческих командных нужно дописать личные олимпиадки, где один прогер и один математик в моем лице
Аноним 27/10/16 Чтв 01:52:34 #253 №864307 
Вы меня удивляете.
Пишу на крестах и пухтоне.

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

Я чет не понимаю, как программист может не мочь в такое? Что за бред? Это как себя не уважать.
Аноним 27/10/16 Чтв 05:07:05 #254 №864331 
>>864307
>адгоритмизацию и математику, причем комбинаторику и статистику (что ненавижу, лучше дифуры)
держите матаноблядь!11
Аноним 27/10/16 Чтв 14:18:18 #255 №864557 
>>864307
>адгоритмизацию
А что это за дисциплина?
Аноним 27/10/16 Чтв 21:42:43 #256 №864888 
>>864557
hellburnization is a part of CS
Аноним 27/10/16 Чтв 21:45:18 #257 №864889 
>>864307
не все такие умные и не все так рано начинали, мне вот 30 лет и на тимусе у меня 50 задач, в школе был далек от программистов, даже не знал об этом, но как сейчас выяснилось тогда по матеше я обходил парней ныне уже участников финала мира acm icpc
Аноним 27/10/16 Чтв 22:14:44 #258 №864900 
>>864307
>статистику
А что с ней не так?
Даже гуманитароблядки её усваивают.
Аноним 27/10/16 Чтв 23:13:52 #259 №864929 
>>864900
http://www.math.wm.edu/~leemis/chart/UDR/UDR.html
Аноним 28/10/16 Птн 00:53:43 #260 №864983 
>>864929
Для программирования пруфы нужны ужО Штоле?
Аноним 28/10/16 Птн 03:08:20 #261 №864996 
>>864983
Спроси в machine learning треде.
Аноним 28/10/16 Птн 15:43:29 #262 №865189 
Пишу алгоритм для игры. В ней нужно набрать максимум очков. Их количество не может уменьшаться. Есть фактор случайности. игра похожа на монополию и количество возможных исходов одного хода меньше чем у шахмат При этом игра может закончиться совсем неожиданно если неколько ходов подряд кубик будет плохо падать. Значит обычный minmax не подойдёт т.к. при большой глубине поиска лучший из худших всегда будет проигрыш. И что делать с линией горизонта? Ведь здесь нельзя форсировать поиск при шахе как в махматах. Реквестирую литературу про программирование ии для игр с влиянием рандома.
Аноним 28/10/16 Птн 17:36:32 #263 №865292 
>>865189
>обычный minmax не подойдёт т.к. при большой глубине поиска лучший из худших всегда будет проигрыш
Не понял проблему. Оцениваешь все исходы броска кубика, и считаешь матожидание оценок. Или не просто матожидание, а матожидание от некоторой функции, учитывающей твоё отношение к риску. Например если надо срочно догонять противника имеет смысл оценивать нулём исходы, которые не дают тебе достаточно очков.

>похожа на монополию
Пиши эвристический алгоритм.
Если хочешь можно ещё сделать обход дерева ограниченной глубины, а по достижении дна считать оценку. Эвристикой опять же. Альтернативно можно использовать метод Монте-Карло. Берёшь начальное положение и много-много раз отыгрываешь его до конца каким-то простым алгоритмом за обоих игроков, а потом по результатам отыгрышей даёшь оценку положению. Но мне кажется эвристика будет точнее.

>Реквестирую литературу
Ты слишком напрягаешься, смотри как люди делают:
https://github.com/intrepidcoder/monopoly/blob/gh-pages/ai.js
https://github.com/DepthDeluxe/Monopoly/blob/master/src/monopoly/AIPlayer.java
Аноним 28/10/16 Птн 18:24:37 #264 №865330 
>>865292
> обход дерева ограниченной глубины, а по достижении дна считать оценку
Так и хочу. Но уже на небольшой глубине можно получить большую оценку, но это будет проигрыш и конец игры. Если в одну и ту же сторону идти, то скоро проиграешь. А в алгоритме перебираются все возможные направления и все возможные броски кубика. Потом смотриться на конкретную глубину и выбираеться тот ход минималиный профит от которого самый большой. Что делать с этими проигрышными тупиками?
И исходники читать не интересно. Хоть статьи скинь.
Аноним 28/10/16 Птн 19:48:26 #265 №865348 
>>865330
>получить большую оценку, но это будет проигрыш и конец игры
Оценка не обязательно равна количеству очков. Это может быть и разность очков у тебя и противника, и сложная функция, учитывающая ещё и ситуацию на доске.
Никто не запрещает тебе назначать проигрышам оценку 0.
Аноним 28/10/16 Птн 21:39:48 #266 №865385 
>>865348
Так может быть так что все ходы проигрышные. Надо что-то выбрать из тех нулей. Может их в 2 очереди проверять? А с горизонтом что делать? Можнт быть так что цепочка из 5 ходов много очков приносит, а любой шестой ходов проигрышный. А алгоритм только на 5 вглубь смотрит и войдёт в проинрышную ветку из которой не выйти.
Аноним 28/10/16 Птн 23:33:47 #267 №865443 
>>864996
Ну, так, ты мне какой-то теорию категорий с универсальной алгеброй тычешь. Статистика тут при чём?
Аноним 28/10/16 Птн 23:35:55 #268 №865446 
>>865385
>Так может быть так что все ходы проигрышные. Надо что-то выбрать из тех нулей.
Если у всех стратегий одинаковая оценка, то выбираешь рандомно.

>А с горизонтом что делать?
Ну блин, делай как в шахматах делают. По достижении дна оценивай положение на доске эвристикой. В шахматах фигурам назначают цену, цены имеющихся фигур складывают, и ещё как-то расположение учитывают, хз как. Так получают примерную оценку для позиций на дне. Тебе тоже надо придумать эвристику для оценки позиции. Как это сделать я подсказать не могу, тут надо пробовать варианты и проявлять изобретательность.
Попробуй решить https://projecteuler.net/problem=84 может придумаешь как прикрутить себе сети Маркова.

>Можнт быть так что цепочка из 5 ходов много очков приносит, а любой шестой ходов проигрышный.
В настолке с кубиком такое нереально. Там слишком много рандома. По этой же причине нет смысла делать сложный алгоритм - разница в уровне игры по сравнению с тривиальным "покупай всё что можешь" будет практически незаметна человеку.
Аноним 29/10/16 Суб 00:44:16 #269 №865490 
>>865443
Чего? На диаграмме показаны соотношения между распределениями случайных величин.
Аноним 29/10/16 Суб 00:52:46 #270 №865492 
>>792140
len([x for x in range(100000, 999999) if sum(map(lambda x: int(x[0]) - int(x[1]),
zip(str(x // 1000), str(x % 1000)))) == 0])
Аноним 29/10/16 Суб 01:04:20 #271 №865498 
>>865492
Ошибка вышла:
len([x for x in range(100000, 1000000) if sum(map(lambda x: int(x[0]) - int(x[1]),
zip(str(x // 1000).ljust(3, '0'), str(x % 1000).ljust(3, '0')))) == 0])
Аноним 01/11/16 Втр 17:19:07 #272 №867885 
Screenshot32.jpg
Хоть кто нибудь, хелп ми
Аноним 01/11/16 Втр 17:25:39 #273 №867892 
>>867885
Мне это напомнило задачу с прошлогоднего полуфинала или даже финала. Копни в эту сторону Насколько я помню, там отчасти рандомизированный алгоритм. Сперва что-то поспрашивать, а потом решать.
Аноним 01/11/16 Втр 17:38:27 #274 №867898 
>>867892
Хуя они охуели давать задачи с финала. Уточни, пожалуйста, что за финал?
Аноним 01/11/16 Втр 17:42:44 #275 №867901 
>>867898
Прости, я тебе наврал. Мне почему-то вспомнилась задача J https://neerc.ifmo.ru/archive/2015/neerc-2015.pdf
Но это совсем из другой оперы
Аноним 01/11/16 Втр 17:44:17 #276 №867903 
>>867901
Но ты все-равно подумай про рандомизированные алгоритмы
Аноним 01/11/16 Втр 17:49:01 #277 №867907 
>>867903
http://rce.su/randomizirovannyj-protokol-svyazi-chast-1/
Вот это попробуй почитать.
А откуда задача?
Аноним 01/11/16 Втр 17:57:52 #278 №867918 
>>867907
Хорошо, спасибо. На паре по дискретной математике задали.:(
Аноним 02/11/16 Срд 01:13:44 #279 №868178 
>>867903
>>867885
Вы че ебнулись? никак.
Аноним 02/11/16 Срд 12:22:04 #280 №868312 
>>868178
> никак
А доказать?
Аноним 02/11/16 Срд 19:58:42 #281 №868659 
>>865492
>>865498
Руки бы тебе блять оторвать за такой код, хуесос
Аноним 06/11/16 Вск 15:48:08 #282 №870866 
С трудом даются задачи из Конкретной математики. Это нормально? Продолжать задрачивать или прочитать что-нибудь полегче сначала?
Аноним 06/11/16 Вск 17:03:49 #283 №870911 
>>870866
А куда легче? Учебник за 5 класс?
Аноним 07/11/16 Пнд 01:41:02 #284 №871291 
>>870911
Да, спасибо, подходит
Аноним 10/11/16 Чтв 20:43:55 #285 №873630 
анон, в какой порядке решать задачи на codeforces? самые популярные, новые, только A, B..., только div 2 или без разницы?
Аноним 10/11/16 Чтв 20:46:50 #286 №873631 
>>873630
Отсортируй по количеству решивших. Начинай решать. Если чуешь, что очень легко идет, листай на следующую страницу
Аноним 10/11/16 Чтв 21:17:54 #287 №873646 
>>873631
спасибо, так и сделаю
Аноним 13/11/16 Вск 09:18:05 #288 №875022 
Screenshot2016-11-13-09-12-19.png
Ну че молчим, епта, давайте задачи решать
Аноним 13/11/16 Вск 14:49:25 #289 №875130 
>>867885
Если ещё не поздно, вот тебе подсказка: почитай как устроен raid5.
Аноним 13/11/16 Вск 17:01:26 #290 №875163 
>>875022
http://ideone.com/iTglQT

>>875130
Ты внимательно прочитал условие?
Особенно про то, что размеры строк r^2, а памяти - r, и что она неперезаписываемая?
Аноним 13/11/16 Вск 20:14:44 #291 №875240 
>>875163
Да, задачка решается для строк размера r^2 , r бит неперзаписываемой памяти и r+1 запросе. Я думал, это очевидно.
Аноним 13/11/16 Вск 22:51:36 #292 №875307 
Стандартная задачка егэ:
Из ряда натуральных чисел выбрать произвольное количество чисел так, чтобы их сумма не делилась на 6. При этом сумму надо максимизировать. На выход количество выбранных чисел и их сумму. Я не совсем ньюфаг в олимпиадном программировании, но тут встал в тупик. А егэ сдавать надо
Аноним 13/11/16 Вск 23:30:22 #293 №875316 
>>875307
Динамическое программирование: f(i, c) = максимальная сумма подпоследовательности arr[:i], делящаяся на c.
Аноним 13/11/16 Вск 23:33:48 #294 №875318 
>>875316
s/делящаяся на c/дающая c в остатке при делении на 6/
Аноним 14/11/16 Пнд 01:43:29 #295 №875365 
>>875307
Как насчёт взять все, а потом при необходимости выбросить наименьшее, не делящееся на 6?
Аноним 14/11/16 Пнд 01:50:25 #296 №875366 
>>875240
Ну не томи тогда, рассказывай.
Аноним 14/11/16 Пнд 02:07:52 #297 №875369 
>>875366
Я бы на твоём месте ещё подумал, задача-то простая. Но если совсем зашёл в тупик, то вот
http://lpaste.net/339079
Аноним 14/11/16 Пнд 09:01:32 #298 №875413 
>>875163
> http://ideone.com/iTglQT

Грови? Это что вообще, лол?)
Ввожу число, имя не выводит, переделывай
Аноним 14/11/16 Пнд 09:39:02 #299 №875423 
>>875413
Ввёл тебе за щёку.
Аноним 14/11/16 Пнд 11:42:57 #300 №875448 
>>875369
Я понял задачу так, что обязательно использовать ровно r+1 запрос.
В таком случае возникает проблема, что на каком-то шаге мы можем обнаружить расхождение, но мы обязаны сделать остальные шаги, и непонятно как передать на эти шаги информацию о том, что различия уже найдены.
Аноним 14/11/16 Пнд 11:53:14 #301 №875451 
>>875448
Нет, ты неправильно понял задачу. Обычно такие странные условия обговариваются. Например, было бы написано "сделав ровно r+1 запрос"
Аноним 14/11/16 Пнд 20:47:50 #302 №875633 
14615721355950.jpg
>>875451
Думаю ты прав, держи няшку.
Аноним 15/11/16 Втр 01:21:54 #303 №875793 
Может тут есть кто-нибудь, кто тоже участвует во всероссийской олимпиаде для 11 классов? Сейчас пробный тур проходит как раз.
И еще может кто-нибуд в технокубке участвовал? Какого уровня там задачи? Там вообще ебанутые какие-то правила с этими взломами, не знаю осилю ли я там хороший результат показать.
Аноним 15/11/16 Втр 16:35:38 #304 №876086 
>>875793
Ну, участвовал в твоем технокубке. Из-за того, что не в том порядке стал решать задачи, занял не 70-какое-то, а 150 с хуем место. Не понравилось
Аноним 17/11/16 Чтв 23:24:36 #305 №877609 
н4.PNG
Ебать, как такое делать? Пока что думаю запилить граф и перебирать по нему все варианты, но это же наверняка будет слишком медленно.
Аноним 18/11/16 Птн 01:56:52 #306 №877675 
>>877609
Хули тут думать-то, жадный алгоритм же.
Идёшь с конца, в i-й день выполняешь работу с самым большим штрафом среди работ с дедлайном >= i.
Аноним 18/11/16 Птн 08:09:49 #307 №877722 
>>792725
пиздец, деление и остаток от деления двумя операциями... Охуеть просто.
Аноним 18/11/16 Птн 14:18:56 #308 №877805 
>>877722
Ну а что ты хотел, я тогда только начал вкатываться в си и программирование вообще
Аноним 18/11/16 Птн 14:40:38 #309 №877811 
>>877675
>среди работ с дедлайном >= i.
А если таких нет, то ничего не назначать, а потом делать дополнительный проход, заполняя дни без назначений?
И как находить такие дни - поддерживать отсортированную по штрафу коллекцию, и в неё докидывать работы из заранее подготовленного списка работ, сгруппированных по дедлайну?

Мне кажется проще назначать день работе с наибольшим штрафом. Если есть свободные дни до дедлайна, то забираем последний. Иначе забираем последний из дней после дедлайна.
Аноним 18/11/16 Птн 18:22:03 #310 №877910 
Какую теорию погуглить для олимпиадного программирования? Я просто совсем неадвно вкатился и пока что просто на логике всё делаю. Жадные алгоритмы, динамическое алгоритмы, что ещё?
Аноним 18/11/16 Птн 18:41:54 #311 №877923 
>>877910
Способы представления графов в памяти, DFS/BFS, алгоритм Дейкстры, комбинаторика на уровне итерации по всем перестановкам и сочетаниям, бинарный поиск, алгоритм Эвклида, решето Эратосфена, генерация пифагоровых троек, метод ветвей и границ.
На самом деле сам поймёшь что нужно когда будешь натыкатьсся на трудные задачи.
Аноним 18/11/16 Птн 20:35:17 #312 №877991 
Как научиьься реализовывать алгоритмы? Смотрю в интернете всякие видео уроки по популярным алгоритмам, типа quicksort, но реализовать на языке который изучаю не могу. Сто делать?
Аноним 18/11/16 Птн 20:51:01 #313 №877999 
>>877991
Как научиьься выступать в суде защитником в деле об ебле козы бабы Нюры? Смотрю в интернете всякие видео уроки по выступлениям-заседаниям, типа quicksort, но выступить в суде в котором выступаю не могу. Сто делать?
Аноним 18/11/16 Птн 20:55:24 #314 №878003 
>>877991
Находишь в интернете реализацию ксорта на твоем языке. Понимаешь. Потом переписываешь, можно подглядывать. Как переписал, закрываешь. На следующий день без подглядывания пиши.
Аноним 18/11/16 Птн 21:02:14 #315 №878010 
>>877923
Спасибо.
Аноним 18/11/16 Птн 21:03:21 #316 №878012 
>>877991
Задвай себе вопрос "а что надо делать" и делай. Потом "а что теперь?" и так далее. После каждого такого шага чекай всё ли правильно работает.
Аноним 18/11/16 Птн 21:59:14 #317 №878045 
>>878003
>>878012
Спасибо, няши
Аноним 19/11/16 Суб 00:36:16 #318 №878123 
>>877722
а как можно лучше?
Аноним 19/11/16 Суб 00:59:48 #319 №878128 
>>878123
divmod
>>877811
тысячи способов, пиши какой удобнее.
Аноним 21/11/16 Пнд 00:10:18 #320 №879289 
>>877675
> Идёшь с конца, в i-й день выполняешь работу с самым большим штрафом среди работ с дедлайном >= i.
И какая у этого алгоритмическая сложность? По-моему, не меньше O(N^2). Многовато.
Аноним 23/11/16 Срд 12:52:08 #321 №880775 
>>879289
Про кучу не слышал?
Аноним 24/11/16 Чтв 01:36:42 #322 №881288 
Продублирую тут, пожалуй.

Сап. Есть в треде алгоритмодрочеры?

Есть таблица связей в бд (postgres): юзер id - группа id.
Нужно выделить несколько секций юзеров (нужно, чтобы было максимум N юзеров в каждой такой секции), которые входят в группы "эксклюзивно".
Другими словами. Допустим N=1000. В секции #1 будет 10 групп, в которые входят только юзеры из этой секции, всего 980 юзеров в секции #1. В секции #2 будет 14 групп, в которые входят только юзеры из секции #2, всего 900 юзеров в этой секции. Всех остальных относим в последнюю секцию. Нужно найти такие вот секции, приблизительно.

Какой тут алгоритм применять?
Главное чтобы быстрее работало, какая-то точность разбития на секции (типа, чтобы максимально скомпоновать юзеров по N=1000 в секции) не нужна.
Пока вижу просто тупо ходить в цикле по группам (в порядке возрастания популярности групп, навеhное), собирать юзеров, пока не наберется 1000, после чего собирать следующую.
Аноним 24/11/16 Чтв 16:00:35 #323 №881503 
>>881288
Трудно что-то сказать не зная как распределены пользователи по группам и что значит "приблизительно" и "эксклюзивно".

Выбирай очередную группу рандомом пока не наберёшь достаточно, делай несколько подходов, выбирай лучший результат.
Аноним 24/11/16 Чтв 16:34:19 #324 №881518 
>>881503
>не зная как распределены пользователи по группам
Как угодно, считай, это группы в вк.
>"приблизительно"
Я имел, ввиду, что не хочу найти лучшее решение из возможных (где секции максимально укомплектованы - по 999, 998 юзеров, например, в каждой), а более быстрое (то есть, пусть там в каждой секции будет по 900-1000 юзеров, это ок).
>"эксклюзивно"
Это я просто так назвал, не знаю как правильно. Смысл - в каждой секции должны быть группы, в которые входят только юзеры из этой секции, не пересекаясь с другими секциями.

Как я уже написал, группы - это как группы в вк. То есть, например, соберу секцию #1, где будет группа любителей хентая 500чел + группа любителей гуро 400чел (из них 100, например, входят в группу хентая) + группа любителей golang 10чел. В других секциях любителей хентая, гуро и golang быть не должно.
И т.д. Большие группы, типа мдк, где >1000чел, не входят в секции. Но их подписчики могут быть любителями хентая, гуро, golang.
Аноним 24/11/16 Чтв 17:34:25 #325 №881535 
>>881518
>В других секциях любителей хентая, гуро и golang быть не должно.
Это строго обязательно? Это условие сильно усложняет задачу.
Аноним 24/11/16 Чтв 18:12:20 #326 №881549 
Сап. Я школьник, 10 класс. Алгоритмы знаю на уровне "quick sort, binary search, bfs, dfs, dijkstra". Такой вопрос - можно ли за год вкатиться в олимпиады так, чтобы получить хоть какие-то бонусы для поступления? И на что следует обратить внимание? Готов сидеть у книжек часами каждый день. Если что, пишу на плюсах.
Аноним 24/11/16 Чтв 18:42:06 #327 №881574 
>>792098 (OP)
>codeforces.com
>acm.timus.ru
>informatics.mccme.ru
>acmp.ru
>TopCoder.com
>etc
Скажите, а есть возможность на каком-нибудь из этих ресурсах сдавать задания на питоне?
Аноним 24/11/16 Чтв 18:42:13 #328 №881575 
>>881549
Думаю можно. Выясни какие олимпиады тебе подходят, посмотри задачи прошлых лет. Нарешивай подобные задачи и читай теорию.
Аноним 24/11/16 Чтв 18:51:45 #329 №881581 
>>881574
Да

>>881549
Есть знакомые, которые из твоего положения и хуже брали себе потом диплом всероса, так что дрочи задачки. Посмотри на иоип, например
Аноним 24/11/16 Чтв 20:01:12 #330 №881616 
>>881581
А подскажи, пожалуйста, на каком из них конкретно можно, если знаешь.
Аноним 24/11/16 Чтв 21:33:11 #331 №881654 
>>881616
На топкодере вроде нельзя. Но вообще не надо писать олимпиады на питоне
Ты сам не можешь посмотреть?
Аноним 24/11/16 Чтв 21:34:23 #332 №881656 
>>881616
на всех, даже etc
Аноним 24/11/16 Чтв 21:43:21 #333 №881663 
>>881535
>Это строго обязательно? Это условие сильно усложняет задачу.
Да.
Аноним 24/11/16 Чтв 21:46:00 #334 №881665 
как самые популярные темы задач на codeforces? дп, жадные алгоритмы, графы, структуры данных...
что задрачивать, чтобы стать хотя бы синим?
Аноним 24/11/16 Чтв 21:48:43 #335 №881668 
>>881665
На синего хватит простых графов, бинпоиска, качественного конструктива. Сложные алгоритмы начинаются после Ddiv2
Аноним 24/11/16 Чтв 21:51:55 #336 №881671 
>>881668
спасибо
Аноним 25/11/16 Птн 02:14:41 #337 №881768 
>>881654
>Не надо писать на питоне
Почему?
Аноним 25/11/16 Птн 19:45:55 #338 №882111 
>>792140
>(c for c in str(x))
Достаточно просто str(x)
Аноним 25/11/16 Птн 19:47:08 #339 №882113 
>>881654
Спасибо
Аноним 25/11/16 Птн 19:47:45 #340 №882115 
это >>882111 сюда >>792567
Аноним 25/11/16 Птн 21:23:53 #341 №882155 
>>881768
Потому что рано или поздно ты столкнешься с тл. Мало где на олимпиадах гарантируют решабельность на питоне
Аноним 26/11/16 Суб 23:14:31 #342 №882755 
>>881518
> Как я уже написал, группы - это как группы в вк. То есть, например, соберу секцию #1, где будет группа любителей хентая 500чел + группа любителей гуро 400чел (из них 100, например, входят в группу хентая) + группа любителей golang 10чел. В других секциях любителей хентая, гуро и golang быть не должно.
> И т.д. Большие группы, типа мдк, где >1000чел, не входят в секции. Но их подписчики могут быть любителями хентая, гуро, golang.

Ну что же вы, бэтманы?
Я думал, в треде есть бородатые гики, что пояснят по хардкору, какой мне алгоритм нужен.
Аноним 27/11/16 Вск 00:09:58 #343 №882783 
>>882755
Сколько групп всего?
Если не больше нескольких тысяч, то можно представить их в виде графа, в котором две вершины соединены если в соотв. группах нет общих членов. Перебираешь в нём клики Броном-Кербошем, и когда находишь подходящую удаляешь её из графа. В принципе может и не обязательно хранить граф в явном виде, в конце концов проверить наличие дуги между группами можно глянув на пользователей.

Но лучше делай как я уже написал >>881503
>Выбирай очередную группу рандомом пока не наберёшь достаточно, делай несколько подходов, выбирай лучший результат.
Можешь ещё отранжировать группы по аутичности, то есть отношению количества пользователей группы к количеству других групп в которых они состоят (или суммарному количеству пользователей в которых они состоят). Начинать наполнение секции лучше с аутистов.

Вангую что результаты тебя огорчат из-за того что есть боты, вступающие в дохуярд групп.
Аноним 02/12/16 Птн 15:05:01 #344 №886324 
>>881549
Я вот вообще не пробовал олимпиадное программирование раньше, но опыта в пограммировании каких-то практических вещей и всякой хуйни у меня куча. И вот в этом году я неплохо так начал в него вкатываться. 11-класс
Аноним 04/12/16 Вск 14:17:24 #345 №887594 
Кто-то сказал Данилюку, что это не кодфорс, чтобы решать с конца?
Аноним 16/12/16 Птн 17:25:27 #346 №895409 
Анончики, не нашел ваш тред на нулевой и поднимаю этот, вроде бы актуальный.
Интересует решение задания "743D - Хлоя и приятные подарки" на codefoces
Разбор здесь http://codeforces.com/blog/entry/49049 , но я в упор не понимаю, как его реализовать.
Кому не лень и кто шарит, можете разжевать идиоту.
Аноним 16/12/16 Птн 18:43:38 #347 №895464 
>>895409
бамп посту
sageАноним 16/12/16 Птн 19:32:55 #348 №895491 
Бампать последний пост, каеф
sageАноним 16/12/16 Птн 19:34:03 #349 №895494 
>>895409
>я в упор не понимаю, как его реализовать
Там же решение на С++. Да и рекурсивное решение тупое как с перестановками:
Вывести все перестановки N чисел.
Перестановка N чисел - это перестановка первого числа и последовательности N-1. И так повторять пока N не будет равно 2, а два элемента переставить может даже школьник.
Аноним 16/12/16 Птн 20:05:08 #350 №895517 
>>895494
>решение тупое
>Вывести все перестановки N чисел.
На минуточку N до 2*10^5.
Вот если ты вообще не в теме, но нахуя лезть в каждую бочку затычкой?
Аноним 19/12/16 Пнд 12:01:22 #351 №896982 
x.png
>>792140
Аноним 19/12/16 Пнд 12:11:17 #352 №896984 
y.png
>>896982
фикс
Аноним 19/12/16 Пнд 19:49:33 #353 №897185 
>>792140
>>896984
ну рейт же, по-моему красиво.
Аноним 19/12/16 Пнд 20:03:55 #354 №897189 
rat.png
>>897185
>по-моему красиво
Аноним 20/12/16 Втр 23:01:54 #355 №897861 
Как лучше себя прокачивать? Мотивации изучать что то новое совсем нету. На codeforces голубенький.
sageАноним 21/12/16 Срд 01:33:05 #356 №897930 
>>897861
Ну и все, нахуй тебе еще что-то? Или ты хочешь стать олимпипдником?
Аноним 21/12/16 Срд 05:58:59 #357 №897953 
>>897930
Да, я же школьник
sageАноним 21/12/16 Срд 06:19:11 #358 №897955 
>>895517
На минуточку ты долбаеб, а первоначальная задача легко решается рекуррентно за n операций. Я же привел задачу намного сложнее, которая тоже легко решается похожим образом.
Толку в этих задачах все равно 0, а автора кода надо бить палкой по голове за такой код
Аноним 21/12/16 Срд 11:59:51 #359 №898015 
>>897953
Тогда у тебя дохуя мотивации. От халявного поступления в вуз и повышенной стипухи, до чемпионата мира в пендосии. Открыл книгу и начал читать, нахуй
Аноним 21/12/16 Срд 20:33:19 #360 №898360 
анон, помоги решить задачу. https://puu.sh/sWIUR/cf666599d0.png
Аноним 22/12/16 Чтв 13:59:00 #361 №898775 
>>898360
ну тут сразу понятно что вершины надо не удалять, а добавлять в обратном порядке.
дальше очевидный флойд уоршел
получается 500^3, норм тебе?
только смотри не объебись - в двух внутренних циклах надо итерироваться по всем вершинам, а не только по добавленным.
Аноним 23/12/16 Птн 19:10:29 #362 №899601 
>>898775
>получается 500^3, норм тебе?
>только смотри не объебись - в двух внутренних циклах надо итерироваться по всем вершинам, а не только по добавленным.
>>898775
Спасибо большое.
Аноним 24/12/16 Суб 02:21:12 #363 №899874 
>>897189
>Sleep(1000)
Проиграл. Нахуя?
Аноним 29/12/16 Чтв 13:46:28 #364 №903068 
не умирай
Аноним 30/12/16 Птн 00:33:11 #365 №903374 
>>903068
Какая сложность у алгоритма Евклида для нахождения gcd?
Аноним 30/12/16 Птн 10:47:44 #366 №903487 
>>903374
O(\log \min(a,b))
Аноним 30/12/16 Птн 11:46:31 #367 №903505 
>>903374
logn
Аноним 30/12/16 Птн 12:21:26 #368 №903514 
>>903505
>>903487
Доказательство?
Аноним 30/12/16 Птн 17:06:39 #369 №903655 
>>903514
Зуб даю.
Аноним 30/12/16 Птн 18:12:50 #370 №903687 
>>903655
На что мне твой зуб?
Аноним 30/12/16 Птн 20:21:35 #371 №903807 
В чем секрет чуваков, которые на codeforces делают все задачи раунда за 2 ебаных часа? А?А?
Аноним 30/12/16 Птн 23:33:17 #372 №903883 
>>903807
То есть секрет чуваков, которые делают это за час тебя не интересует?
Аноним 30/12/16 Птн 23:48:47 #373 №903894 
>>903807
Буду краток. знаешь, буквально на днях я был в Российской Академии
Наук, провёл беседу со многими учёными, в том числе молодыми, кстати,
очень грамотные ребята. Так вот мы обсудили, в частности и данную
проблему, поговорили о текущей экономической обстановке в стране; они
так же рассказали о своих планах на будущее.
Вкратце, ответ на твой вопрос такой: эти ребята довольно быстро решают задачи, что позволяет им придумать алгоритм и написать код для задач всего раунда всего за два часа.
Аноним 31/12/16 Суб 17:32:35 #374 №904151 

> Покажите, что алгоритм, который содержит не больше некоторого по-
> постоянного количества вызовов процедуры с полиномиальным временем
> работы, сам работает полиномиальное время. Если же алгоритм делает
> полиномиальное число вызовов такой процедуры, то общее время работы
> может быть экспоненциальным.

Посоны, откуда здесь экспоненциальное время выполнения?
Аноним 02/01/17 Пнд 02:22:48 #375 №904528 
>>904151
Выглядит странно. Очевидно, что суперпозиция полиномов есть полином. Может, там процедура может сама себя дёргать или алгоритм?
Аноним 02/01/17 Пнд 03:25:17 #376 №904538 
>>903807
Секрет в том, что родились с более подходящей для решения подобных задач генетикой
Аноним 02/01/17 Пнд 04:10:33 #377 №904546 
>>904538
У тебя мифологическое мышление
Аноним 02/01/17 Пнд 04:17:30 #378 №904548 
>>904546
ага, иди поспорь с нейробиологическими исследованиями.
Аноним 02/01/17 Пнд 04:49:02 #379 №904555 
>>904548
Уровня фантазий третьеклассника
Аноним 02/01/17 Пнд 04:54:33 #380 №904558 
>>904555
можешь жить своими маняфантазями дальше
Аноним 03/01/17 Втр 01:13:45 #381 №904909 
>>904546
>>904548
>>904555
>>904558
Пиздец, вот вам спорить нехуй делать. Лучше бы над >>904151 подумали.
Аноним 03/01/17 Втр 23:56:35 #382 №905503 
>>904151
Задача из Кормена. Из раздела NP.
Аноним 04/01/17 Срд 00:42:07 #383 №905524 
>>905503
У меня вот прямо щас лежит открытая в туалете глава про NP, но ничего наводящего на мысль не нахожу. Подскажешь конкретнее?
Аноним 04/01/17 Срд 00:48:10 #384 №905527 
>>905524
NP полнота>>>Полиномиальное время>>>>Упражнения
Аноним 04/01/17 Срд 01:07:16 #385 №905537 
>>905527
Спасибо. Только легче не стало.
Может я неправильно понимаю эту задачу? Ну подставили мы в x^10 значение x=n^20, получили n^200, экспонента никак не получается.
Аноним 04/01/17 Срд 01:57:47 #386 №905560 
>>897955
Тут шизофазия, смотрите
Аноним 04/01/17 Срд 02:20:16 #387 №905579 
>>904151
>>904151
Не благодари. http://www4.ncsu.edu/~aszanto/MA522/HWSol2.pdf
Аноним 05/01/17 Чтв 13:42:22 #388 №906373 
>>792098 (OP)
Бля у третьего дедка волосы как солнце хех
Аноним 05/01/17 Чтв 16:02:39 #389 №906450 
>>906373
Вообще-то там один дед, где ты увидел третьего?
Ебался с этой хуйнёй полночи, в итоге только 6/11 тестов проходит :^( Аноним 05/01/17 Чтв 17:11:46 #390 №906492 
Поход.png
Сам код (естественно, Паскаль):
http://rgho.st/6smPy2ygw
Аноним 05/01/17 Чтв 17:27:09 #391 №906504 
>>906492
Задача Эйлера в классическом виде же?
Аноним 05/01/17 Чтв 17:28:15 #392 №906505 
>>906492
Блджад, выложи на идеоне/гисте, чо как маленький.
Аноним 05/01/17 Чтв 17:48:04 #393 №906528 
>>906505
https://gist.github.com/anonymous/dd3b338e869a275d51e11ed3d80ba2ef
Аноним 05/01/17 Чтв 17:53:01 #394 №906532 
>>906492
#3296 Поход (6-9)
Темы: [Динамическое программирование: два параметра]
Источники: [ Личные олимпиады, Московская олимпиада школьников, 6-9 классы, 2011, Задача D ]
Аноним 05/01/17 Чтв 17:57:46 #395 №906536 
>>906528
>>906492
Граф нарисовал? Задача на алгоритм Дейкстры (а не задача Эйлера, проебался)



Аноним 05/01/17 Чтв 18:51:24 #396 №906581 
>>906536
Погуглил. Без подбора по всем возможным путям задачу возможно решить?
Аноним 05/01/17 Чтв 19:57:56 #397 №906612 
>>906581
Тут не нужны никакие графы и поиски кратчайших путей.
Это задача для 6ого класса. Нужно просто запоминать кратчайшее число переправ до текушей точки на левом и правом берегу. Код на богоподобной Яве по ссылке.
http://ideone.com/34HGKf
Аноним 05/01/17 Чтв 20:11:58 #398 №906628 
>>906612
>Нужно просто запоминать кратчайшее число переправ до текушей точки на левом и правом берегу
Частный случай поиска кратчайшего пути, вариант реализации с бинарным графом.
Аноним 05/01/17 Чтв 20:19:59 #399 №906643 
>>906628
Так то да, но тут время О(n) и памяти O(1), а у Дейкстры? Впрочем можешь не отвечать. Просто покажи реализацию, лучше всего на фибоначчевой куче, тебе явно это раз плюнуть, делов на 5 минут. А мне интересно.
Аноним 05/01/17 Чтв 20:38:09 #400 №906661 
>>906612
>Нужно просто запоминать кратчайшее число переправ до текушей точки на левом и правом берегу
Так мой код тоже самое и делает, нет? Конечно, там есть дохуя костылей, но всё же.
Аноним 05/01/17 Чтв 20:57:33 #401 №906673 
>>906661
Прости, но твой код написан так, что его даже читать не хочется. В нем нем ясной выраженной мысли. Зачем ты проверяешь следующий символ в строке? Зачем тебе переменная up? И где у тебя хранится минимум переправ до текущей точки (и правого и левого) берега реки?
Аноним 05/01/17 Чтв 21:12:09 #402 №906683 
>>906673
>Зачем ты проверяешь следующий символ в строке?
Для логичности, если сверху слева, конечно, но по картинке как будто сверху(т.е переменная up=1, а если снизу справа, ага, то соответственно up=0) идут два подряд (этот символ и следующий -- LL) притока, то выгоднее будет переправиться вниз, где таких притоков нет. Если сверху идёт лишь один приток, а второй снизу (LR), то выгоднее будет переправиться дальше вправо, чем переправиться вниз, а потом снова вверх.
>И где у тебя хранится минимум переправ до текущей точки (и правого и левого) берега реки?
Собственно, в переменной p, которая и выводится в конце. Правда, там по-другому описано, и нет отдельно левого и правого берега.

Я неофит просто, в этом году едва в регионалку по всеросу не попал.
Аноним 05/01/17 Чтв 21:30:42 #403 №906702 
>>906683
Кажется, нашел в твоем решении ошибку.
Проверь вход LLRB
Аноним 05/01/17 Чтв 21:42:42 #404 №906723 
>>906702
Действительно, у меня при притоках по всем сторонам (B) он поворачивает, хотя это совсем не обязательно.
Спасибо, спустя ещё несколько костылей будут все сто баллов, а так пока что 60.
Аноним 05/01/17 Чтв 22:02:21 #405 №906758 
>>906723
Анончик, не делай так. Сейчас ты с удивлением увидишь, что для нижнего берега тебе нужно будет смотреть уже на 2 символа вперед. Посмотри выше решение готовое. И просто разберись почему оно работает. В нем мы идем, как будто по обеим сторонам реки одновременно.
Аноним 05/01/17 Чтв 22:49:31 #406 №906805 
>>906758
>Сейчас ты с удивлением увидишь, что для нижнего берега тебе нужно будет смотреть уже на 2 символа вперед
Но почему? Извини, понять не могу.
>И просто разберись почему оно работает.
Хотелось бы всё же допилить своё решение, а если совсем не выйдет -- разобраться в чужих.
Аноним 05/01/17 Чтв 23:43:18 #407 №906857 
>>906643
Ну не на пять минут, но мне тоже интересно. Мои соображения:
- в каждой точке графа у нас есть два возможных пути
- выбирая каждый раз пусть с меньшим весом, вы в итоге получим кратчайший (в волновом алгоритме всегда обсчитываем только одну ветку)
- переход протоки на стороне, где сейчас игрок, стоит 1
- переход на другую сторону учитывается вместе с переходом протоки на другой стороне (то есть результирующий вес на этом шаге либо 0, либо 2)
Память не нужна, сложность O(n).
Аноним 05/01/17 Чтв 23:43:56 #408 №906858 
>>906857
Хотя да, заняло минут 7-10.
Аноним 05/01/17 Чтв 23:46:59 #409 №906859 
>>906857
Тут есть маленький нюанс, но пусть спрашивающий сам догадается. Я могу дать подсказку.
Аноним 05/01/17 Чтв 23:49:31 #410 №906860 
>>906857
опечатка: 1 либо 2*
Аноним 06/01/17 Птн 00:09:04 #411 №906880 
>>906857
Считать надо 2 шага, этот и следующий (как сумму), а при прочих равных выбирать правый берег.
Аноним 06/01/17 Птн 00:29:36 #412 №906895 
>>906857
Код покажи.
Аноним 06/01/17 Птн 23:54:53 #413 №907421 
>>906450
Я про третьего чувака, он дед.
Аноним 07/01/17 Суб 00:01:15 #414 №907423 
>>907421
Сам ты dead, ёпта.
Аноним 07/01/17 Суб 00:06:35 #415 №907427 
>>907423
Лул
Аноним 07/01/17 Суб 23:32:18 #416 №907945 
Сап, анончики, какой набор скиллов нужно выучить/повторить для предстоящей областной?
мимо-школьник
Аноним 07/01/17 Суб 23:34:15 #417 №907948 
Хуй знает, где такое спрашивать, так что спрошу тут пожалуй, это лучше, чем ньюфаг-тред. Есть алгоритм Кнута-Морриса-Пратта. Можно ли им сделать поиск подстроки, если в заданной для поиска подстроке допустим символ, который бы допускал, что на его месте может быть любая другая подстрока?
Аноним 08/01/17 Вск 01:21:16 #418 №908016 
>>907948
Задача о ноп?
Аноним 08/01/17 Вск 01:24:14 #419 №908019 
>>907945
Есть раздел на acmp.ru с областными олимпиадами, там можно задачки порешать.
Аноним 08/01/17 Вск 02:19:46 #420 №908037 
Что почитать школьнику нужно больше примеров, чтобы научиться решать задачи на динамическое программирование? А как решать задачи на графы, про всякие j-е дороги между i-ми городами. Я учусь в 10 классе и недавно заинтересовался программированием, пытаюсь в задачи на Codeforces, но получается только А.
Может, уже поздно вкатываться, но хотелось бы уметь это для себя.
Аноним 08/01/17 Вск 03:15:05 #421 №908049 
>>908037
Вкатываться не поздно, читай Шеня, Окулова и архивы олимпиад (mccme.ru и прочее, что есть в шапке)
Аноним 08/01/17 Вск 09:47:38 #422 №908108 
>>908019
Добра тебе
Аноним 10/01/17 Втр 12:20:14 #423 №909245 
Для всех, кто вкатывается в ОП на курсере очередной тысячный раз стартует курс по алгоритмам Седжвика.
https://www.coursera.org/learn/algorithms-part1
https://www.coursera.org/learn/java-data-structures-algorithms-2

Быстро проходишь оба курса.
Перестаешь быть зеленым на форсах.
Аноним 14/01/17 Суб 16:51:16 #424 №912094 
Uf5WyyLmXbc.jpg
Аноним 15/01/17 Вск 23:55:52 #425 №912857 
Наконец то апнулся на форсах
Аноним 16/01/17 Пнд 18:46:02 #426 №913244 
>>912857
молоток, какой теперь? как к этому шел?
sageАноним 16/01/17 Пнд 18:59:47 #427 №913248 
>>912094
красавцы
Аноним 16/01/17 Пнд 19:40:27 #428 №913263 
>>913248
да они офигенные, это 2011 год в Орландо
Аноним 16/01/17 Пнд 20:29:52 #429 №913319 
Yx4F940JDbg.jpg
Аноним 19/01/17 Чтв 04:48:25 #430 №914987 
>>909245
чем он лучше/хуже этого? https://courses.edx.org/courses/course-v1:ITMOx+I2CPx+3T2016/info
Аноним 19/01/17 Чтв 05:39:40 #431 №914992 
maxresdefault.png
ОЛИМПИАДНОЕ ПРОГРАММИРОВАНИЕ
Аноним 19/01/17 Чтв 11:47:53 #432 №915073 
>>914987
Для форсов и ОП итмошный куср лучше, причем сильно лучше. Но у него выше уровень входа. В нем мало теории и много отличных задач.
Аноним 19/01/17 Чтв 15:31:35 #433 №915189 
Объясните как ваша параша помогает вам в реальном программировании?
Аноним 19/01/17 Чтв 15:36:27 #434 №915192 
>>915189
Никак. Но те кто в 11 классе могут назадротить олимпиаду и пройти в топ вуз.
Аноним 19/01/17 Чтв 15:57:27 #435 №915206 
>>915192
> постсовок
> топ вуз
топ кек
Аноним 19/01/17 Чтв 22:00:22 #436 №915399 
>>915189
Сайты верстать не поможет. Так что можешь не париться.
Аноним 20/01/17 Птн 00:30:43 #437 №915488 
>>914987
Как просмотреть материалы курса, если он кончился?
Аноним 20/01/17 Птн 12:51:14 #438 №915654 
>>915488
Кстати, если не был зарегистрирован, то никак.
Есть список презентаций из учебных видео.
https://courses.edx.org/courses/course-v1:ITMOx+I2CPx+3T2016/bf78f3a948074b16ba7146b1be3b4850/

Список задач с разборами добрые люди дожны были выложить на гитхаб.
Аноним 20/01/17 Птн 13:28:17 #439 №915679 
д1.PNG
д2.PNG
д3.PNG
д4.PNG
Помогите, я нихуя не понимаю. 1 пик условия, остальные объяснение.
на 3 пике:
>Сложим все пары (ki, li)длин таких блоков в массив.
Что это значит? То есть есть строка aabbbaaaaabbaa то в этот массив поместят(2,3) и (5,2)?
И дальше - почему надо найти такое чтобы это выполнялось?
Аноним 20/01/17 Птн 14:47:25 #440 №915707 
>>915679
>Что это значит? То есть есть строка aabbbaaaaabbaa то в этот массив поместят(2,3) и (5,2)?
Сначала для пары (a,b) в массив поместят (2,5)(3,2).
Затем для пары (b,a) -> (3,2)(5,2)
Аноним 20/01/17 Птн 14:49:08 #441 №915708 
>>915707
А не, ты прав (2,3)(5,2) и (3,5)(2,2)
Аноним 20/01/17 Птн 15:09:45 #442 №915712 
>>915679
>>915707
>>915708
Как это работает:
Пусть у нас есть строка abbbaabbaaab, рассмотрим для начала только пару (a,b)
Тогда странностью такой строки будет количество не повторяющихся странных подстрок вида {a}{b}. Для abbb - это 3. Для aabb - 4, для aaab - 3. Но при этом мы несколько раз посчитали одни и теже подстроки.
Вопрос, как посчитать только различные варианты?
Для этого представим ось координат с абсциссой колво 'a' и ординатой колво 'b'. И расположем на этой плоскости прямоугольники с одним углом в начале координат и вторым в нашем случае (3,1)(2,2)(1,3) почитаем площадь фигуры. Это и будет ответ без повторений. Теперь повторим все для пары ('b','a').

У тебя на третьей пикче алгоритм нахождения такой площади.
Аноним 20/01/17 Птн 20:34:02 #443 №915893 
>>915712
Дошло, спасибо.
Аноним 20/01/17 Птн 21:38:44 #444 №915940 
Как лучше считать хэш? По модулю 2^64 - 1 или 10^9 + 1?
Первый больше, но зато второй простой.
И как лучше хэшировать множество (то есть порядок не важен)?
Аноним 21/01/17 Суб 20:37:52 #445 №916483 
Если имеются средние знания алгоритмов, на каком ресурсе советуете решать подряд задачи?
Аноним 21/01/17 Суб 22:21:12 #446 №916542 
Ох ебать я набухался, чувствую себя быдлом, ааааа, мимо готовлюсь к области, ахахахаха
Аноним 21/01/17 Суб 22:21:38 #447 №916543 
Пиздец
Аноним 21/01/17 Суб 22:24:48 #448 №916547 
>>916483
Решай на ацмп
Аноним 21/01/17 Суб 22:41:43 #449 №916568 
>>916542
какой на форсах, сколько на тимусе?
Аноним 21/01/17 Суб 23:17:25 #450 №916610 
Посоветуйте, как вкатиться в алгоритмы и структуры данных с нуля школьнику?
Аноним 22/01/17 Вск 12:38:16 #451 №916859 
кдф.jpg
>>916610
Аноним 22/01/17 Вск 12:40:16 #452 №916863 
10840original.jpg
Аноним 22/01/17 Вск 15:12:28 #453 №917028 
>>916859
Так я не для олимпиад хочу вкатиться, а просто, чтобы перестать писать велосипеды
Аноним 22/01/17 Вск 20:51:49 #454 №917407 
>>915940
1) по модулю 2^32 - 1, это быстрее
2) любой ассоциативной операцией от хешэй элементов (я часто xor использую)
Задача Timus 1003. Чётность Аноним 23/01/17 Пнд 12:47:57 #455 №917830 
7d0771453e.png
Полный текст задачи на пике. Если своими словами, то у нас есть неизвестная последовательность нулей и единиц. И запросы на четность единиц в подпоследовательности с L элемента до R элемента. Вопрос, начиная с какого запроса последовательности удовлетворяющей всем запросам не существует?

Как решить используя DSU?
Аноним 23/01/17 Пнд 14:40:45 #456 №918001 
>>917830
Попробуй сделать так:
1. сет с родителем 0 для чётных, а с 1 для нечётных.
2. Все цифры тогда придётся увеличивать на 1, т.е. вместо единицы будем использовать 2 и т.д. (так как 0 и 1 заняты)
3. unionSet будем использовать только тогда, когда findSet(x) != 0 && findSet(x) != 1
4. Прочитал 1 3 odd, вызываешь unionSet (1, 2), (1, 3), (1, 3), второй аргумент увеличен на 1, см. пункт 2.
5. Делаешь проверку. Суммируешь findSet от 2, 3, 4(увеличены на 1, input у нас 1, 2, 3)
5. Сумму проверяешь на чётность
Аноним 24/01/17 Втр 10:50:14 #457 №918522 
ce36ba712b.png
>>918001
Пункт 4. Не ясен. Почему для четного отрезка все внутренние точки добавляются в нечетное множество?

Вот на пикче есть объяснение с форсов, но я его тоже не понимаю.

Т.е. вот есть запрос l r odd. Это значит, что либо (1,l-1)=odd и (1,r)=odd либо (1,l-1)=even и (1,r)=even. Но что с этим делать не ясно.
Аноним 24/01/17 Втр 18:28:56 #458 №918735 
Screenshot from 2017-01-24 19-28-12.png
>>915654
>>915488
можно зарегистрироваться и решать в любое время
Аноним 28/01/17 Суб 19:13:25 #459 №920972 
Олимпиудники, как вы в файлы ввод/вывод перенаправляете?
Аноним 31/01/17 Втр 19:04:52 #460 №923255 
Парни, объясните тупому, что такое взлом задачи во время контеста на cf?
Аноним 31/01/17 Втр 21:34:12 #461 №923411 
>>923255
взлом решения мб?
кто-то посмотрел твой код, который прошёл претесты, увидел что он выдаст неправильный ответ на какие-то допустимые входные и типа запустил твоё решение на этих входных
Аноним 31/01/17 Втр 22:24:52 #462 №923464 
>>923411
>запустил
ясно, а как можно посмотреть код до окончания контеста?
Аноним 01/02/17 Срд 00:25:38 #463 №923568 
>>923464
На главной странице контеста нажимаем замок напротив решенной задачи.
Переходим в раздел "комната", дабл-кликом по кол-ву очков открываем решение для просмотра.
Находим ошибку
Жмем кнопку взломать, пишем тест(грузим генератор)
????
профит
Аноним 01/02/17 Срд 14:05:53 #464 №923822 
>>923568
спасибо
Аноним 03/02/17 Птн 01:19:40 #465 №925150 
Как CTF начать тащить?
Аноним 04/02/17 Суб 21:38:12 #466 №926582 
v
Аноним 05/02/17 Вск 01:56:52 #467 №926797 
Поясните за вот эту задачу
http://codeforces.com/problemset/problem/7/C
Я ее решил через длинную арифметику: сначала нашел решение (x0, y0). Потом все решения имеют вид
x = x0 + (b/d) k
y = y0 - (a/d)
k,
где d = gcd(a, b), k - целое.
Дальше я относительно k решаю систему неравенств
-5e18 <= x0 + (b/d) k <= 5e18
-5e18 <= y0 - (a/d)
k <= 5e18.
Если хотя бы одно k подходит, я его беру и подставляю в формулы выше. Это и есть ответ. Посмотрел решения других людей - они тупо решают уравнение и все. У меня 2 вопроса:
1) почему не может быть такого, что решая это уравнение расширенным алгоритмом Евклида, мы получим какую-то точку, выходящую за ограничения, но при этом существует точка, которая нам подходит?
2) почему не может быть переполнения? насколько большими могут оказаться x и y, когда мы решаем линейное диофантово уравнение?
Аноним 06/02/17 Пнд 18:40:07 #468 №927755 
Блджад. Участовал в контесте на форсах (1400 мусор), решил только А и В. Остальные три были пиздец какой-то. В тренировках такая же хуйня, дальше В никогда не уходил. Причем я не понимаю - вроде основные алгоритмы знаю (да если меня разбудят в 4 утра и насильно посадят за комп, на изи напишу бинпоиск, сортировку за O(n*log(n)), бфс, беллмана-форда, дфс, дейкстру, поиск порядковой статистики, каркас минимальной длины итд). Задачи на динамику тоже решал, получается с шансом 40%, хардово спалить закономерность. Когда читаю разборы последних трех задач, охуеваю - как люди додумываются до ЭТИХ решений. Как вообще люди на олимпиадах побеждают? Я уже с этим тимусом проебался до 100 решенных задач, ацмп решал, читал Шеня.
Короче, как вообще люди умудряются искать правильное решение в задачах, где хуй поймешь, какой алгоритм нужен? Тупо нарешивать овердохуя с архивов? И всё?
Аноним 06/02/17 Пнд 18:46:49 #469 №927764 
>>927755
Большинство олимпиадников -- олимпиадники по математике тоже (хотя есть исключения), это сильно прокачивает смекалочку, то есть умение понять, как же найти ключ к этой задаче.
Аноним 06/02/17 Пнд 19:17:10 #470 №927794 
>>927764
Никогда не увлекался олимпами по матану. Значит, нужно забить болт на форсы, ибо без скиллов с математических олимпиад никак не апнуться?
Аноним 06/02/17 Пнд 19:55:55 #471 №927823 
>>927794
Нет, не обязательно. Просто они прокачивают скилл, которого тебе не хватает.
Попробуй решать много-много простых задач -- на бинпоиск, поиск в глубину и простенькую динамику (в первых трёх задача на этом вашем КФ только это и нужно). Меньшикова на информатикс, региональные этапы, задачки по темам разным.
Аноним 06/02/17 Пнд 21:04:44 #472 №927851 
>>926797
бамп
Аноним 06/02/17 Пнд 21:11:33 #473 №927853 
>>927851
Мда, ты что, не быдлокодер?
Написал на питоне, получил ОК и нормас.
Аноним 06/02/17 Пнд 21:46:30 #474 №927866 
>>927853
> писать олимпиады на питоне
как там на 1400 птс?))0
Аноним 06/02/17 Пнд 21:50:18 #475 №927872 
>>927755
> Я уже с этим тимусом проебался до 100 решенных задач
Очень мало. Это сколько в сумме ты потратил на решение - 50 часов? Хз почему ты не побеждаешь на олимпиадах, когда целых 50 часов потратил. В доте-то, наверное, 1050 часов.
Аноним 06/02/17 Пнд 21:58:12 #476 №927879 
>>927872
100500 часов в дотке и все равно в брозе, потому что тима не тянет =)
Аноним 06/02/17 Пнд 21:59:32 #477 №927881 
>>927866
Ну так если длинная арифметика нужна.
Аноним 07/02/17 Втр 00:10:47 #478 №927976 
>>927755
Лол, что за хуйня, если меня ночью разбудить, я нихуя не напишу. Мимо-2000-на-кф
Аноним 07/02/17 Втр 10:07:56 #479 №928062 
>>927755
> напишу бинпоиск
До слёз с этого знатока.
Аноним 07/02/17 Втр 20:49:08 #480 №928351 
>>927976
Первый див, помоги с >>918522 раз все равно мимо проходил. Пожалуйста.
Аноним 07/02/17 Втр 22:03:29 #481 №928407 
>>927755
Нужен опыт именно в олимпиадных задачах, со временем начинаешь узнавать неочевидные использования того или иного алгоритма и решаешь.

В школе ходил на олимпиады по математике, там та же хуйня была, если видел несколько сотен задачек то почти всегда сразу знаешь куда копать.
Аноним 08/02/17 Срд 20:23:53 #482 №929003 
Каким образом можно надрочиться за 2 года, чтобы стать победителем на олимпиаде 1 уровня? Знания по математике хуевые, с программированием еще хуже, даже сортировку не могу написать.
Аноним 09/02/17 Чтв 00:25:55 #483 №929196 
>>929003
informatics.mccme.ru
Сидишь и решаешь. Вместо Доты. Тебе должно быть настолько же интересно.
Как прокачаешься, пишешь так же кодфорсы сможешь писать.
Аноним 09/02/17 Чтв 00:43:31 #484 №929218 
Помогите решить задачу про RSA
http://acm.timus.ru/problem.aspx?space=1&num=1141
Я прям не ебу, почему у меня WA
http://pastebin.com/Vg6Sj7Cf

Я просто вычисляю
d = eφ(φ(n)) - 1 (mod φ(n)),
m = cd (mod n).
Что вообще там может не работать?
Аноним 09/02/17 Чтв 01:20:25 #485 №929248 
>>897185
За вложенные циклы принято по рукам бить
Аноним 09/02/17 Чтв 01:27:11 #486 №929255 
>>929248
Как там круды поживают?
Аноним 13/02/17 Пнд 21:47:54 #487 №932575 
>>929003
Pizda треду
Аноним 13/02/17 Пнд 23:23:58 #488 №932655 
Как восстановить ответ в задаче о рюкзаке, используя O(N+L) памяти? (N предметов, L вместимость рюкзака)
Знаю аналогичный алгоритм в задаче о расстоянии Ливенштейна, но он какой-то сложный (хотя задача вроде проще).
Аноним 14/02/17 Втр 02:27:46 #489 №932762 
>>932655
Проиграл со сложного алгоритма о расстоянии Левенштейна.

https://www.cs.colostate.edu/~cs575dl/Sp2015/Lectures/Knapsack.pdf
Аноним 15/02/17 Срд 01:31:02 #490 №933506 
>>932655
Забавно, ты назвал Алгоритм Левештейна сложным, хотя это просто разделяй и властвуй. Обычно когда какой-нибудь алгоритм не до конца разбираешь, считаешь его сложным, хотя на самом деле ты просто не понял его идею.
Если бы ты понял как работает Левенштейн, ты бы сразу понял как можно сделать то же самое для рюкзака.
http://ideone.com/abUEBD
Аноним 16/02/17 Чтв 21:20:22 #491 №934730 
>>933506
Алё.
Линейное количество памяти + восстановление ответа.
Аноним 16/02/17 Чтв 23:31:06 #492 №934821 
>>934730
Проиграл с петушка, который не умеет по коду определить сложность по памяти.
Аноним 16/02/17 Чтв 23:34:31 #493 №934825 
>>934821
Технически можно приебаться к копированию items при делении пополам - будет N*log(N) памяти, но так более читаемо. Понятно, что можно не копировать, а хранить [l, r]
Аноним 11/03/17 Суб 14:27:06 #494 №951187 
Не тони.
Не поздно ли вкатываться? Аноним 19/03/17 Вск 13:10:03 #495 №956844 
В школе прогал с удовольствием и довольно много, но бессистемно и навыков, кроме непосредственного написания кода, не развил. Потому что долбоеб.
Как итог, в 11 классе в олимпиадки не смог, пришлось идти на физику. Сейчас учусь в приличном вузе мфти, но направление скорее связано с математикой и физикой, буду менять.
Так вот, летом у меня будет около двух свободных месяцев на то, что бы достичь в своем развитии в плане проганья хотя бы уровня хорошего школьного олимпиадника, с какого бока за это лучше взяться? Я так понимаю, сначала нужно освоить алгоритмы, был даже сайт где список из 80 штук, этого хватит для начала? Как распределить время между теорией и практикой?
Есть ли где-то видео-курсы? Так-то я могу ботать по 8 часов, но нужна программа, координация, что бы кто-то вел, по книжкам это тяжело. Ангельский intermediate, речь понимаю, но трачу на это слишком много сил, на постоянный просмотр меня не хватит.
Аноним 19/03/17 Вск 13:57:25 #496 №956872 
>>956844
Вебмакак сейчас очень много, поэтому лучше вкатываться в низкоуровневое программирование и embedded.
Аноним 19/03/17 Вск 14:27:53 #497 №956893 
>>956872
Алло тут тред олимпиадного программирования, я про него и спрашиваю
Аноним 19/03/17 Вск 14:32:17 #498 №956895 
>>956872
Embedded-макак сейчас очень много, поэтому лучше вкатываться в высокоуровневое программирование и веб.
Аноним 19/03/17 Вск 14:33:03 #499 №956896 
>>956893
>олимпиадное программирование после школы
Зачем?
Вкатиться в алгоритмы и структуры данных необходимо, но олимпиады не нужны.
Аноним 19/03/17 Вск 14:50:34 #500 №956911 
>>956896
Нравится формат, короткие вызовы на несколько часов. Хочется научиться быстрее решать задачи.
Если получится, по вузику можно будет ходить как на понтах, с замдекана за руку здороваться
Аноним 19/03/17 Вск 15:07:36 #501 №956917 
Котятки, напоминаю что открыта регистрация в код джем.
Аноним 20/03/17 Пнд 19:59:11 #502 №957744 
>>956844
1) Одному тяжело будет, тренер нужен. Если ты в мфти, с этим 100% проблем не будет.
2) Решай текущие контесты на codeforces + архив на codeforces, там есть разборы задач и можно смотреть чужие решения.
Но вообще, ты какой-то аутист. Олимпиады нужны, чтобы поступить в вуз, а если ты уже поступил, то они нахуй не всрались. В вузе надо либо заниматься наукой (если дохуя умный), либо на работу устраиваться как можно быстрее, чтоб по окончанию вуза уже было много опыта.
Аноним 21/03/17 Втр 07:13:22 #503 №958018 
>>957744
1. Искать тренера пока рано, как мне кажется. Никто не будет нянчить дауна без базовых алгоритмических знаний, разве что за большие деньги. Собственно, вопрос был про структурированный курс конкретно по спортивным алгоритмам, что бы направляли и объясняли фишки. В свое время начинал просто решать задачи, но сложилось впечатление что это довольно малоэффективный процесс.

Так со стороны для себя вижу несколько выгод:
1) Идея пачками макачить игрушки для айос на модных фреймворках, пусть даже за большие деньги, меня не очень прельщает.
А вот идея написания высокоэффективного кода кажется гораздо интереснее, поэтому спортивное программирование кажется мне актуальнее для себя, чем тот же технотрек.
2) Достаточно начитался бугуртов про схожие со спортивными задачки на собеседованиях в крутые компании, поэтому получить этот навык будет так или иначе полезно. При этом лучше сейчас, чем чеез 6 лет, когда придется начинать работать и гнаться за рынком. Тем более, что учить прикладные технологии сейчас не имеет смысла.
Аноним 21/03/17 Втр 23:37:29 #504 №958606 
>>956844
>был даже сайт где список из 80 штук
Это который?
Аноним 22/03/17 Срд 20:54:11 #505 №959229 
>>958018
> 1. Искать тренера пока рано, как мне кажется. Никто не будет нянчить дауна без базовых алгоритмических знаний, разве что за большие деньги.
Блять, что значит нянчить? Ты просто ходишь на тренировки, где ты один или с командой таких же ньюфагов решаешь задачи, а потом идет разбор этих задач. После разбора можешь дорешивать задачи и задавать всякие вопросы. Фишка в том, что если ты решаешь один и не понимаешь, почему у тебя задача не принимается, ты можешь очень долго думать и в итоге все равно не додуматься. Намного лучше у кого-нибудь спросить.

> Идея макачить меня не прельщает.
Ты понимаешь, что все, что не наука - это макакинг? Да, есть более высококвалифицированные макаки. Вот я немного шарю в алгоритмах и математике, но макакой я от этого быть не перестаю, потому что я не могу создать что-то новое, чего не было до меня. Я могу хуйнуть нейросеть и распознавать изображения, но не я же придумал алгоритм backpropagation, это будет просто реализация чужой идеи. Ничуть не лучше, чем сайты на пхп хуярить. Если не хочешь заниматься макакингом - поступай в магистратуру, потом в аспиранутру и т д. Если ты тупой как я и не можешь в науку, лучше сразу задумайся о будущей работе и начинай дрочить все разделы cs, а не только алгоритмы. Прочитай все книги Таненбаума.

> Достаточно начитался бугуртов про схожие со спортивными задачки на собеседованиях в крутые компании
На большинстве вакансий не спрашивают динамическое программирование, теорию чисел, геометрию, графы и прочую хуету. Из алгоритмов спрашивают что-нибудь "на смекалочку" (типа найти подмассив с максимальной суммой за O(n)) + то, что реально полезно знать в работе: деревья (красно-черные, b-tree и т д), хэши, сортировки и т д. На олимпиадах ты никогда не будешь писать красно-черное дерево / свою сортировку / свою хэш-таблицу.
Аноним 25/03/17 Суб 22:59:10 #506 №961013 
Анон, помоги. Что-то не получается решить элементарнейшую задачу на тимусе (сложность 81) http://acm.timus.ru/problem.aspx?space=1&num=1106.
Мой код:
http://acm.timus.ru/forum/thread.aspx?id=36064&upd=636260865438522774
Моё решение заключается в том, чтобы с помощью BFS покрасить все вершины и записать в ответ те, которые имеют одинаковый цвет
Аноним 27/03/17 Пнд 13:12:51 #507 №961751 
Аноны, есть какие-нибудь методы по решению таких задач, как эта: http://acm.timus.ru/problem.aspx?space=1&num=1502 ?
Я проебал на ней два часа, вывел какую-то ебанутую формулу, которая почему-то работает и получил AC. Вопрос - есть какие-нибудь статьи/книги, где рассказывается, как решать похожие задачи с нахождением формул?
Аноним 28/03/17 Втр 01:33:01 #508 №962194 
Накидайте плз задач на cf или тимусе на префикс- или z-функцию.
Аноним 28/03/17 Втр 22:10:31 #509 №962676 
>>962194
https://www.hackerrank.com/challenges/morgan-and-a-string
Аноним 28/03/17 Втр 22:19:18 #510 №962679 
>>961751
Ты че, поехавший?

#include <bits/stdc++.h>
using namespace std;

int main() {
int n; cin >> n;
int64_t ans = 0;
for (int l = 0; l <= n; ++l) {
for (int r = l; r <= n; ++r) {
ans += l + r;
}
}
cout << ans << endl;
}
Аноним 29/03/17 Срд 00:04:11 #511 №962759 
>>961751
http://www.nado5.ru/e-book/formula-summy-n-pervykh-chlenov-geometricheskoi
Аноним 29/03/17 Срд 00:26:31 #512 №962769 
>>959229
>то, что реально полезно знать в работе
> (красно-черные, b-tree и т д), хэши, сортировки
Прости, братишка, но по работе скорее всего это не пригодится. Пригодится умение распаковать протобуф, запаковать, написать конфиг, итд. Никогда тебе на работе не придётся задуматься о чём-нибудь реально сложном. Лично я таких работ не встречал.
Аноним 29/03/17 Срд 00:30:24 #513 №962772 
Selection024.png
>>961751
Во-первых,
http://www.wolframalpha.com/input/?i=sum+(sum+(i+%2B+j),+j+%3D+i+to+n),+i+%3D+0+to+n
Во-вторых, если ты это делаешь на контесте, когда время ограничено и ты не можешь пользоваться вольфрамом, ты можешь упростить эту сумму, чтобы она считалась за O(n) вместо O(n^2), но не искать конечную формулу (пикрелейтед).
В-третьих, при желании можно продолжить выводить и вывести конечную формулу тупо в лоб, просто нужно терпение и внимательность.
В-четвертых, этот анон >>962679 правильно заметил, решение в лоб проходит, потому что у тебя здесь примерно 5 на 10^7 раз выполняется ans += l + r, а это очень простая операция. Такая простая операция за секунду может успеть выполниться даже 10^9 раз. В среднем за секунду успевает выполниться около 10^8 операций (если это не какие-то сложные операции с дробными числами).

Аноним 29/03/17 Срд 11:51:42 #514 №962900 
>>792098 (OP)
Спрошу тут, ибо хуй знает, где еще спрашивать.
Есть массив множеств перестановок A = [a_1, ... a_n]. n Относительно мало, для S_5 (группы перестановок порядка 5) всего 27, для S_6 94.
Нужно для каждой пары (a_i, a_j) \in A проверить, совпадают ли у них подруппы, натянутые на данные множества перестановок.
То есть: пусть a_i = {tau_1, .. tau_m}, a_j = {delta_1, .. delta_m}. Узнать, равны ли <tau_1, .. tau_m> и <delta_1, .. delta_m>.
Можно ли это сделать за вменяемое время? Как вообще натянуть подгруппу на перестановки в комплуктере?
Посоны, если кто-нибудь знает подходящую книжку, или пакет в каком-нибудь эре или петухоне, либо хоть что-нибудь способное помочь, напишите, пожалуйста.
Аноним 29/03/17 Срд 16:30:43 #515 №963087 
>>962900
>Спрошу тут, ибо хуй знает, где еще спрашивать.
Маттред в /sci/, dxdy, math.stackexchange.com
Но для начала сформулируй вопрос понятней.
Аноним 29/03/17 Срд 19:44:12 #516 №963216 
>>963087
>Но для начала сформулируй вопрос понятней.
Пусть так.
Есть два множества перестановок A = {tau_1, ... tau_m} и B = {delta_1, ... delta_m}.
Узнать, равны ли подгруппы <A> и <B>.
Аноним 29/03/17 Срд 19:45:40 #517 №963217 
>>963216
A, B подмножества группы перестановок S_n.
Аноним 03/04/17 Пнд 12:53:35 #518 №965964 
20170403144530.jpg
Вот эта хуйня не дает мне покоя, как блять это сука работает?
Аноним 04/04/17 Втр 00:58:39 #519 №966444 
>>965964
Изи же
http://ideone.com/xEhb2a
Аноним 09/04/17 Вск 16:12:29 #520 №970065 
png.png
памагити
Аноним 09/04/17 Вск 20:57:58 #521 №970469 
>>970065
Ты че, ебан? Суфмассив + lcp
Аноним 09/04/17 Вск 21:15:42 #522 №970481 
>>970469
Ещё суффдерево можно + дфс, но раз ты такое спрашиваешь, вряд ли ты его напишешь с первого раза.
Аноним 11/04/17 Втр 22:39:14 #523 №972129 
Можно ли на КФ как-то смотреть тесты, если соревнование уже прошло?
Аноним 11/04/17 Втр 23:38:54 #524 №972158 
>>972129
Нет. Если не получается, скидывай сюда, кто-нибудь решит.
Аноним 11/04/17 Втр 23:41:23 #525 №972160 
>>972158
Да там классическая задача, я просто баг в реализации не мог найти (уже нашёл).
Аноним 11/04/17 Втр 23:51:51 #526 №972166 
>>972160
Лол, вот это я тебя обманул. Извини, плохая память. Так это, после сабмита тебе должно выдать все входы и выходы (если ты не в олимпиадном режиме решаешь)
Аноним 26/04/17 Срд 22:45:39 #527 №980789 
>>970469
>>970481
С этого момента поподробнее.
Аноним 26/04/17 Срд 22:51:08 #528 №980790 
Как найти совершенное паросочетание минимального веса в двудольном графе?
Между долями есть всё рёбра, если это важно (наверно нет, потому что можно надобавлять ребёр с весом ∞).
http://informatics.mccme.ru/mod/statements/view.php?id=6555#1 - вот эта задача, короче
Аноним 26/04/17 Срд 23:31:51 #529 №980814 
>>980790
https://en.m.wikipedia.org/wiki/Assignment_problem
Аноним 27/04/17 Чтв 17:58:43 #530 №981085 
>>980814
Спасибо.
Аноним 27/04/17 Чтв 21:08:09 #531 №981174 
>>980789
https://en.wikipedia.org/wiki/Longest_common_substring_problem#Suffix_tree
Аноним 30/04/17 Вск 07:42:41 #532 №982275 
А как делать неасимптотические оптимизации?
Я вот не знаю, разве что очевидные вещи типа:
1) Вот этого заклинания.
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);
2) Сделать один ресайз вместо множества пушбэков в векторе. (а кстати, быстрее ли вообще заменить векторы статическими массивами?)
3) Отсечения в переборе писать. Всяких брейков понаставить.
Вот. Вообще компилятор очень умный и всякие штуки сам оптимизирует, да? Типа
for (int i = 0; i < m n; ++i) {...};
Он тут не будет скорее всего умножать m на n много раз, а сделает типа
int mn = m
n;
for (int i = 0; i < mn; ++i) {...};
(в теле цикла, понятно, эти переменные не трогают)
Аноним 30/04/17 Вск 14:01:41 #533 №982368 
>>982275
for (int i = 0, to = m n; i < to; ++i) ...
Вместо new Node использовать deque.push_back() && return &deque.back()
Но обычно этим не заморачиваются и делают такие тест кейсы, чтобы твой перебор не влез даже с байтоебскими оптимизациями (ну это в нормальных контекстах)
Аноним 30/04/17 Вск 19:54:43 #534 №982585 
>>982275
> Он тут не будет скорее всего умножать m на n много раз, а сделает типа
> int mn = m n;
Да. Эта оптимизация называется hoisting.
Аноним 30/04/17 Вск 20:07:45 #535 №982598 
>>982275
В идеале надо читать книги по архитектуре компьютеров и по компиляторам, но на контестах почти всегда можно обойтись без этих знаний. Иногда выстреливает, у меня было несколько примеров.

Например, была задача про дерево с N = 400000. Я подумал, что N какое-то большое и зачем авторы так сделали. Понял, что стэк может переполниться и сделал обход дерева не через рекурсию, а помещая номера вершин в очередь.

В другой раз я решал какую-то задачу через linked list и там были запросы, в результате которых могла создаться новая нода в листе, а могла и не создаться. Запросов там было 100000, но задача не прошла. До сих пор не уверен в чем дело, но видимо в том, что динамическое выделение памяти занимает много времени. Вот если бы компилятор видел, что я подряд в цикле выделяю, он бы соптимизировал и сразу выделил сколько нужно, а там были запросы. Потом я понял, что затупил, и что можно заменить linked list на deque, и задача прошла, потому что deque устроена как массив, который при необходимости увеличивается во сколько-то раз (в 2, кажется), соответственно, делается всего log N запросов на выделение нового участка памяти.

Еще была ситуация, что я решил писать код через лямбды, а компилятор какую-то лямбду скомпилировал во что-то хуевое, задача не проходила. Заменил на императивный вариант и прошла. С тех пор на контестах я все пишу в императивном стиле.
Аноним 30/04/17 Вск 23:24:08 #536 №982673 
>>982598
>linked list
>Запросов там было 100000, но задача не прошла. До сих пор не уверен в чем дело
Может имел место произвольный доступ к элементам списка?
Аноним 01/05/17 Пнд 00:06:16 #537 №982693 
>>982598
>компилятор какую-то лямбду скомпилировал во что-то хуевое
Вообще пушка.
Ты сам смотрел на ассемблерный код, или просто так ляпнул что-то от балды? Я думаю, что ты просто не знаешь С++ и пишешь чушь.
Аноним 01/05/17 Пнд 12:05:48 #538 №982798 
>>982693
> Ты сам смотрел на ассемблерный код
Зачем мне смотреть, если я и так знаю, что лямбды могут сконпелироваться в хуйню и не только в плюсах. Заменил лямбду на эквивалентный императивный вариант и зашло. Какой тут еще вывод можно сделать?

>>982673
Нет, там только в начале и в конце добавлялись элементы.
Аноним 01/05/17 Пнд 13:34:34 #539 №982843 
>>982798
>если я и так знаю
Короче не слушайте этого шизика, он где-то как-то обжёгся на лямбдах (небось не отличает [=] от [&]), а обосновать или привести примеры не может.

Чтобы не стать такими как он всегда докапывайтесь до истины, если видите, что что-то не работает, а не "ща тут cout вставим чтобы глючить перестало"
Аноним 01/05/17 Пнд 18:38:43 #540 №983087 
>>982368
> &deque.back()
Такие ссылки не инвалидируются при новых пушбэках? Или как-то можно указать, чтобы дэк на основе связного списка генерировался? Но тогда какая это оптимизация, если всё равно при каждом добавлении системный вызов.
Аноним 01/05/17 Пнд 22:28:44 #541 №983300 
>>982368
Ну не скажи. Разница между O(n) и O(n log n) весьма призрачная, и оптимизированный логарифм может работать быстрее, чем линейное решение, особенно если у него константа пожирнее.
Изредка даже O(n^2) вместо O(n) может зайти, если тесты слабые, либо такое решение, что для него тест непросто придумать, особенно заранее, не зная решение.
Конечно, чаще проще решить по честному, но сдать задачу, не решая, тоже весело.
Аноним 02/05/17 Втр 00:00:44 #542 №983332 
>>983087
Ты вообще представляешь что такое deque в С++? Как он внутри устроен? Почитай cppreference прежде чем такие вопросы задавать.
Аноним 04/05/17 Чтв 06:26:05 #543 №984536 
Эй, отвечающие в тред, расскажите, когда и как вы начинали упарывать олимпиадки, какой лвл, где учились/учитесь/работаете. Что читали с самого начала, на какие курсы ходили?
Аноним 05/05/17 Птн 00:21:26 #544 №984956 
>>984536
Ходил на курсы в академю ШАГ, но там скучно был и я вместо занятий ходил к твоей мамке заниматься любовью.
comments powered by Disqus

Отзывы и предложения