DL летописец
1.82K subscribers
107 photos
8 videos
36 files
79 links
Пытаюсь выжить в питерской вышке и пойти в науку (контакт - @Pashteticus)
Download Telegram
!!!
Forwarded from что (Федор Ромашов)
гениальный раунд от владимира новикова, все пишем ребята https://codeforces.com/blog/entry/99776
Важно (если пишите СПбГУ по инфе)!
Forwarded from Yet another upd
Для тех, кто пишет СПбГУ, хотелось бы напомнить, что по регламенту вы должны пойти тестирование на сайте https://talant.spbu.ru до 10 утра 12 февраля. Логин и пароль нужно использовать с отборочного (такой же, какой вы использовали при входе в тестирующую систему)
Уже через 2 недели будет инд тур по НТИ ИИ (расписание https://ntcontest.ru/participants/schedule/#final-stage-schools), А я как бы хотел выкладывать всякие полезные посты по олпроге. Так как часто хотелось бы видеть посты (на 90% скопированные откуда-нибудь) и контесты на соответствующие темы?
Всем, кто пишет СПбГУ, удачи !
Сегодня я слил СПбГУ по инфе
100+100+100+60+58+0 = 418 / 600
Первые 3 часа жестко тупил, сдал только Ашку и Eшку на 58 (там вообще халявно)
Потом вроде собрался, заметил, что в D надо посчитать просто (n+1)! по простому модулю, написал за линию (оказывается можно было пользоваться справочниками, если они скачаны заранее, но я этого не знал, а так бы скачал себе peltorator book и emaxx, нашел бы код для факториала за sqrt(n) и сдал бы)
Далее стал думать на конструктивом в С. Долго думал, всякую лажу писал. В итоге зашло такое:
если нулей больше чем единиц - заменяем все на ?
если единиц больше (или равно нулям) - первые n/2 единиц заменяем на ?
Далее стал смотреть 3-х страничное условие Bшки.
Тоже долго тупил, но в конечном итоге сдал. Достаточно было заметить, что если идти с конца, то после любого переворота все часы будут в нулевом состоянии - тогда просто переворачиваем, если i+1 раз часы просигналили
Еще пытался в Ешке что то вроде корневой придумать, но так и не придумал.
Жалко конечно что слил (побед спбгу мог бы дать мне бви на ПИ ВШЭ, не ПМИ конечно, но тоже неплохо, но с такими баллами шансов на победителя нет)
DL летописец
Скоро начнутся финалы перечневых олимпиад, поэтому вот маленький календарик тех, в которых я собираюсь участвовать (фактически это просто напоминалка, но вдруг кому-то поможет не забыть что-нибудь важное) Отборы: МОШ (информатика) - 320/500 проход ИОИП…
Я кстати возможно не буду писать всесиб 🤡, так как в моем регионе нет площадок (ехать далеко до ближайшей) + там сразу после этого финал НТО ИИ, а мне нужно получше подготовиться.

UPD: я кстати обновил свой календарик (закреп) - добавил ИОИП, добавил даты открытки
DL летописец
Раз уж большинство проголосовали за домашки, то держите ссылку на группу где я буду писать конспекты и добавлять тематические контесты (не забудьте выбрать роль "участник, если хотите решать задачи"): https://codeforces.com/group/a1W1cUWddJ UPD: прошу строго…
Наконец то мои руки дошли до первого поста и до первого контеста, завтра утром уже можно будет решать)
Я постарался добавить интересных задач, одну даже сам придумал и подготовил))
Разбор будет завтра около полуночи.
Анонс: далее будет пост про структуры данных, а именно базовое ДО и префсуммы. Потом еще будет немного про графы и, наконец, 1-2 прошлогодних инд тура.
Давно постов не было...


Короче сегодня поговорим о теории вероятности, а также об одном популярном виде задач на теорию вероятности(и геометрию, хехехе)

Сразу замечу, что существует два вида событий(в данном контексте - исходов) относительно друг друга - зависимые и независимые. Зависимые перемножаем, независимые складываем. Выпадение определенного числа на кубике - независимое от других чисел событие, и сумма всех независимых событий равна единице. При броске двух кубиков выпадение одинаковых чисел - совокупность шести независимых событий: на обоих числах выпали одинаковые числа. Каждое такое событие состоит из двух зависимых событий: на первом кубике выпало X и на втором кубике выпало X. Тогда вероятность того, что выпадет две единицы равна (1/6)*(1/6)=1/36, вероятности выпадения двух двоек, троек и т.д., так же равна 1/36 для каждого числа. Тогда вероятность события "выпали одинаковые числа" равна 6*(1/36)=1/6 (Ага, это происходит довольно часто!)

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

Решение:
Посадим одного носителя желтых штанов за стол, теперь осталось __N-1__ позиция, на которую можно усадить второго носителя. Заметим, что существует ровно две позиции, соседних с позицией первого, вероятность того, что он окажется с одной из сторон - 1/(N-1), а поскольку позиций две - вероятность того, что они будут соседями равна 2 x (1/(N-1))=2/(N-1)

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

Решение:
Заметим, что если убрать из выбора для первого студента два крайних места, то будут работать рассуждения прошлой задачи, поместив на любое из этих N-2 мест первого студента, второй может занять любое из N-1 оставшихся места, среди них только два подходят ему, соответственно вероятность того, что он будет соседом равна 2/(N-1).
Но, так как мы выбрали определенные места для первого студента, эта вероятность правильна только лишь если первый занял эти места, а вероятность такого события составляет (N-2)/N, соответственно вероятность соседства равна {(N-2)/N} x {2/(N-1)}

Рассчитаем вероятность соседства для случаев когда первый занял крайнее место, вероятноcть этого составляет 2/N. Теперь второму можно сесть только с одной стороны, а значит вероятность равна 1/(N-1). Поскольку это последовательные события - перемножим вероятности, получим (2/N) * {1/(N-1)}

Теперь найдем суммарную вероятность наших двух независимых событий: [{(N-2)/N} x {2/(N-1)}] + [(2/N) * {1/(N-1)}]=... (читатели сами могут сократить данное выражение и получить красивую формулу)
👍1
И наконец рассмотрим задачу с геометрией: В тире на стене закреплен квадратный лист со стороной 2 метра, в середине которого нарисована окружность радиусом 1 метр, Вася играет с другом в игру, они один раз стрелают в середину мишени, Васе для победы нужно, что бы пуля попала в круг, а Пете для победы нужно попадание в квадрат, но не в круг. К несчастью пистолет - игрушечный, и место попадания пули СОВЕРШЕННО не зависит от навыков стрелка и цели, которую он определил, однако она всегда попадает в лист. Помогите Васе и Пете найти вероятность выграть в этой игре.

Решение

Заметим, что с нашим случайным пистолетом - вероятность попадания пули внутрь курга равна отношению ВСЕХ возможных точек внутри окружности ко ВСЕМ точкам листа. К счастью, совокупность всех точек можно определить как площадь фигуры (внезапно оказалось, что если взять мельчайшую точку, то их поместиться количество, прямо пропорциональное площади).

Тогда вероятность попасть в круг равна S(круга)/S(листа)=(1м^2 x 3.14159...)/(2м^2)=pi/4
Вероятность же попасть в лист, согласно условию, равна единице, пуля всегда попадает в него. Тогда вероятность победы Васи равна pi/4, а вероятность победы Пети равна 1-pi/4.
Это число можно найти двумя путями, можно заметить, что площадь всего квадрата равна 4, а площадь круга pi, тогда площадь квадрата без круга равна 4-pi, а площадь всего листа 4, соотвественно вероятность равна (4-pi)/4 = 1-(pi/4).
Другой путь - понять, что выигрыш Пети - есть проигрыш Васи и наоборот, соотвественно суммарная вероятность победы Васи и победы Пети равна единице. Теперь просто вычитаем из 1 вероятность победы Васи (pi/4) и получаем вероятность победы Пети 1-(pi/4)

P.S. Существует метод приближенного поиска площади какой-либо фигуры, для которой мы можем для случайной точки (например по расстоянию от центра) определить, попала ли она в искомую фигуру, или нет. Через определенное количество итераций мы можем определить площадь искомой фигуры как отношение попавших точек ко всем использованным, умноженное на площадь фигуры, в которую мы поместили искомую и "бросали" в нее точки. (Метод Монте-Карло)
На МОШе появилась новая задача!
DL летописец
Наконец то мои руки дошли до первого поста и до первого контеста, завтра утром уже можно будет решать) Я постарался добавить интересных задач, одну даже сам придумал и подготовил)) Разбор будет завтра около полуночи.
Разбор контеста принял ислам. По двум причинам:
1) особо никто не решает
2) 5/6 задач можно нагуглить
Так что к инд туру я только сделаю контест с задачами прошлого года.

Если будет настроение, разберу интересные применения префиксных/суффиксных структур (не суффмасс, а префиксные суммы и подобные штуки)
Forwarded from Календарь олимпиад по информатике
Добавлена последняя задача Е в МОШ 10-11. Больше задачи добавляться не будут. Тур длится до 28 февраля включительно.
DL летописец
Разбор контеста принял ислам. По двум причинам: 1) особо никто не решает 2) 5/6 задач можно нагуглить Так что к инд туру я только сделаю контест с задачами прошлого года. Если будет настроение, разберу интересные применения префиксных/суффиксных структур…
Я сделал контест по задачам предыдущего года. Но пока там только 3 задачи вместо 5:
1) последняя - гроб, который тогда даже призеры всероса не сдали на норм балл
2) для 4й довольно сложно сделать норм генератор тестов + инд тур уже завтра
Но пока можно хотя бы попробовать свои силы в трех задачах)
Завтра сразу после туров постараюсь сразу выложить разбор задач (хотя бы некоторых)
👍2
Сегодня писал инд тур олимпиады ИИ НТИ. Матешу я слил (её разбор напишет наш математик). А пока расскажу про инфу.
Всего набрал 10+15+20+25+0 баллов (из 10+15+20+25+30)
Теперь по задачам:
1) Простая задачка - для каждого человека храним время прихода и максимизируем ответ
2) Была дана перестановка n и граф на n вершинах. Надо было найти кол-во подотрезков, в которых ни 1 вершина не соединена с другой. Решалось просто: для каждого значения в перестановке ищем самую позднюю по порядку вершину (но которая раньше её), с которой она соединена. Теперь жадник с указателем на правую границу - пока left[r] < i мы делаем r++;
3) Надо было найти вероятность что при добавлении ребра в дерево образуется цикл четной длины (но нельзя добавлять кратное ребро).
Сначала я решил написать квадрат - тл, ожидаемо. Стал думать и считать пути каждой четности для каждого поддерева. Затем для каждой вершины легко определить сколько через неё проходит путей нечетной длины (а именно такие нам и нужны для цикла четной длины). 1) кол-во нечетных путей в данную вершину (то есть пути из этой вершины) + пути ЧЕРЕЗ эту вершину. То есть после обработки очередного ребенка мы к ответу прибавляем ch[v] * (ch[u] + 1) + nch[v] * nch[u]. Таким образом мы подсчитаем все пути
4) Я пихал что то вроде перс ДО 🤡. Сначала сортил массив в обратном порядке, затем запускал жадник.
пункт 1: мы можем взять вершину этого цвета если её цвет еще не брали
пункт 2: мы можем взять вершину этого цвета и этого веса, если есть другие цвета с этим весом
пункт 3: мы можем взять эту вершину, если существует вершина другого цвета, вес которой меньше минимального имеющего веса текущего цвета.
Первые 2 случая легко заифать. 3й сложнее. Для этого будем динамически строить ДО на цветах. Для этого заранее заведем массив уже взятых вершин. Теперь с помощью бинпоиск ищем левый и правый индекс интересных нам шаров (которые подходят по весу)
Далее на этом отрезке смотрим есть ли цвет не равный текущему: то есть либо 2+ цвета либо 1 не равный цвет. Отсюда кстати небольшая оптимизация: при добавлении новой вершины если в ДО на этом отрезке уже 2 или более цветов - то можно не добавлять

5) Не сдал

Прикладываю коды

UPD: Если что то непонятно, можете спрашивать (только не ругайте за говнокод пж)