Wilcodit
Wilcodit
  • Видео 42
  • Просмотров 149 713
Задачи С Отборочного Этапа ИТМО (разбор)
Разбираем задачи с первого отборочного этапа олимпиады ИТМО за 24-25 год
Телега - t.me/wilcodit_school
00:00 - Введение
00:27 - Задача 1
05:23 - Задача 2
14:02 - Задача 3
15:43 - Задача 4
21:49 - Задача 5
30:36 - Задача 6
34:44 - Задача 7
38:30 - Задача 8
42:51 - Задача 9
48:35 - Задача 10
51:42 - Итог
Просмотров: 133

Видео

Как Работает Алгоритм Дейкстры [Spanning Tree]
Просмотров 21 тыс.4 месяца назад
Алгоритм Дейкстры позволяет нам найти кратчайший путь между двумя вершинами графа. Здесь мы исследуем интуицию алгоритма - какую информацию нам нужно отслеживать, в каком порядке нам нужно исследовать вершины и каковы ограничения алгоритма. tg: t.me/wilcodit_school Перевод видео с канала Spanning Tree Ссылка на видео: ruclips.net/video/EFg3u_E6eHU/видео.html Канал автора: @SpanningTree
Как Работает O-большое. Оценка Сложности Алгоритма
Просмотров 3977 месяцев назад
В этом видео ты узнаешь, как оценить асимптотическую сложность алгоритма по времени и по памяти, как работает О-большее и как всё это применять на практике. Телеграм - t.me/wilcodit_school 00:00 Введение 00:30 Сравнение двух алгоритмов 01:17 Первая идея 04:01 Асимптотика 05:23 Правильно оценивания асимптотики 10:42 Примеры асимптотик 13:53 Применение в олимпиадном программировании 15:32 Оценка ...
Ты Пишешь Бинарный Поиск НЕПРАВИЛЬНО
Просмотров 7348 месяцев назад
В этом видео ты узнаешь как правильно писать бинарный поиск, как выбирать границы для бинпоиска, и как выглядит бинпоиск по ответу. Телеграм - t.me/wilcodit_school 00:00 - Введение 00:25 - Инвариант 03:24 - Код 05:17 - Примеры 08:30 - БинПоиск по ответу
Ответ славянскому языку В††, ЯЩЕРЫ - СИЛА!
Просмотров 3 тыс.Год назад
Ответ славянскому языку В††, ЯЩЕРЫ - СИЛА!
Задачи с отбора на стажировку в Яндекс (разбор контеста)
Просмотров 5 тыс.Год назад
Задачи с отбора на стажировку в Яндекс (разбор контеста)
Задачи с отбора на стажировку в Tinkoff (разбор контеста)
Просмотров 16 тыс.Год назад
Задачи с отбора на стажировку в Tinkoff (разбор контеста)
Весь Python Для ЕГЭ за 1 час
Просмотров 739Год назад
Весь Python Для ЕГЭ за 1 час
Можно ли всегда выигрывать в Тетрис? [Spanning Tree]
Просмотров 8 тыс.Год назад
Можно ли всегда выигрывать в Тетрис? [Spanning Tree]
ГАЙД по Олимпиадному Программированию: Где и Как Изучать?
Просмотров 55 тыс.Год назад
ГАЙД по Олимпиадному Программированию: Где и Как Изучать?
Игра За 48 Часов! Опыт участия в GameJam
Просмотров 6132 года назад
Игра За 48 Часов! Опыт участия в GameJam
Разбор 27 Задания С Реального ЕГЭ по Информатике 2022
Просмотров 1,2 тыс.2 года назад
Разбор 27 Задания С Реального ЕГЭ по Информатике 2022
Как Выучить Python За 3 Дня
Просмотров 9 тыс.2 года назад
Как Выучить Python За 3 Дня

Комментарии

  • @WapUAs
    @WapUAs 10 дней назад

    Я сделал двумерный цикл, первый узнает 1ю квартиру на этаже, второй просто сохраняет 3 в ряд. Что думаете? const haus_high = [3, 5, 6]; // Этажи в домах const raum_count = 3; // Количество квартир на этаже const v = 2; // Интересующий этаж function getMax(hauseID) { return haus_high[hauseID] * raum_count; // максимум квартир } function getRaum(stoss) { return (raum_count * stoss) - raum_count; // первая квартира на этаже } function calc() { let prev_max = 1; // Квартиры начинаются с 1 const raums = []; // Квариты на этаже for(let i=0; i<haus_high.length; i++) { let raum = prev_max + getRaum(v); prev_max += getMax(i); // Добавляем смещение до последней квартиры в доме if(haus_high[i] < v) continue; for(let raum_id=raum; raum_id < raum + 3; raum_id++) { raums.push(raum_id); } } return raums; } console.log(calc())

    • @WapUAs
      @WapUAs 10 дней назад

      Код можно в консоле браузера проверить, это Java Script.

  • @WapUAs
    @WapUAs 10 дней назад

    Норм с графеном заморочился!))

  • @ДикийПорп
    @ДикийПорп 11 дней назад

    12 баллов за этот этап в 11 норм?

    • @wilcodit
      @wilcodit 11 дней назад

      Да, проходной 10 баллов был год назад, если хорошо второй отбор напишешь - можно считать гарантированный проход

  • @wilcodit
    @wilcodit 15 дней назад

    Телеграм - t.me/wilcodit_school

  • @ЭльвинНадиров
    @ЭльвинНадиров 22 дня назад

    Начал изучать алгоритмы месяц назад. Каждый день решаю задачи и изучаю новые темы. Скоро муниципальный этап, готовлюсь к нему. Не уверен что в этом году смогу пройти его, но я пока 10 классе. Думаю, если так же буду заниматься, за 1,5 года смогу знать хорошо алгоритмы и в следующем выиграю всеросс. Ну если получится, надеюсь вспомню и изменю сообщение

  • @honcaherko
    @honcaherko 24 дня назад

    Спасибо! (Я слушаю это видео за ночь до олимпиады💀)

  • @helensisikoff
    @helensisikoff Месяц назад

    3:35 Пять это чётное число? Поколение ЕГЭ во всей красе...

    • @swiftkeyloow1518
      @swiftkeyloow1518 Месяц назад

      вслушайся,прежде чем писать,он сказал нечётное

  • @ТройнойЧизкейк
    @ТройнойЧизкейк 2 месяца назад

    Хочу перепоступить на программирование, всегда интересовала эта тема, особенно когда услышала про спортивное программирование Огромное спасибо за материал

  • @yeunborn
    @yeunborn 2 месяца назад

    привет, увидел твое видео насчёт олимпиадного программирования, хотел узнать, почему c# не подойдёт? он же вроде быстрый(не как плюсы, но уж в разы быстрее питона),у меня есть хорошая база на нем в ооп(промышленном программировании), думаю все же на нем писать всош, высшую пробу и т.д.😊

  • @AlexSav
    @AlexSav 3 месяца назад

    10:43 Каждую купюру мы можем взять 0, 1 или 2 раза. То есть можно решить задачу за 3^10 = 59049 операций, что существенно меньше чем 2^20 = 1048576

  • @jonmoxley235
    @jonmoxley235 3 месяца назад

    А C# норм вариант?

  • @firstmain52
    @firstmain52 3 месяца назад

    Очень милая анимация

  • @luckyea7
    @luckyea7 4 месяца назад

    В детстве я хотел, чтобы у меня был тетрис, в котором я мог добавлять свои фигуры, которых в то время не было в моем тетрисе, чтобы усложнить игру, т.к. с фигурами тетрамино мне играть было не интересно и легко, никаких проблем во время игры не возникало (в brick game я спокойно набирал 100 000 очков, которые сгорали, а я продолжал играть дальше на 9 скорости не проигрывая и так до бесконечности). И вот сейчас у меня такая возможность появилась. С помощью нейросети я создал свой тетрис с самыми разнообразными фигурами от мономино до гексамино и со своими правилами игры. Самому мне эту игру писать не пришлось, это сделала нейросеть по моим запросам. Сделан этот тетрис, не сколько для коммерческой выгоды, сколько для личного пользования. В интернете я нигде не находил подобного тетриса. В нем я сделал возможность игрокам самим выбирать нужные фигуры. Этот тетрис я опубликовал в яндекс играх. Можете его найти через поиск. И назвал я его "Тетромикс" (Название придумал ChatGPT, обосновав: "Название подчеркивают разнообразие фигур и возможность выбора. "Тетромикс" объединяет элементы традиционного тетриса и микс фигур"). Игра была сделана специально для истинных любителей тетриса, которым фигур классического тетриса недостаточно. Им предоставляется возможность самостоятельно сформировать свой набор фигур. В игре представлено 37 самых разнообразных фигур, многие из которых, как правило, отсутствуют в других реализациях тетриса. Также игрок может выбирать уровень игры. С повышением уровня растет скорость игры и размер зарабатываемых очков. Эта игра представляет собой головоломку, построенную на использовании геометрических фигур мономино, домино, тримино, тетрамино, пентамино и гексамино - разновидности полимино. Мономино, домино, тримино, тетрамино, пентамино и гексамино - это виды полимино - плоских геометрических фигур, образованных путём соединения нескольких одноклеточных квадратов по их сторонам. Мономино - состоит из одного квадрата, домино - из двух квадратов, тримино - из трёх квадратов, тетрамино - из четырёх квадратов, пентамино - из пяти квадратов, гексамино - из шести квадратов. В этой игре есть лидерборд. Для того чтобы попасть в лидерборд, необходимо нажать кнопку «Соревнование». В этом случае игрок уже не может выбирать фигуры и уровень: игра начнется с первого уровня, и на начальном этапе будут использоваться фигуры «тетрамино». После достижения игроком 10 000 очков добавятся ещё фигуры «мономино», «домино» и «тримино». В случае, если игрок сможет набрать 20 000 очков, ему станут доступны фигуры «пентамино». А после того, как игрок наберет 30 000 очков, появятся фигуры «гексамино». В лидерборд попадают те, кто больше всех набрал очков. В лидерборде я нахожусь сейчас на первом месте. Сможете сместить меня с пьедестала? По функционалу этот тетрис превосходят аналоги, которые я видел в интернете. Приглашаю всех принять участие в игре и попытаться побить мой рекорд. Хочется мне посоревноваться с сильными игроками со сложными фигурами.

  • @EmuDellno
    @EmuDellno 4 месяца назад

    Пайтон за 3 дня)))) смешно.

  • @MrSergioPalermo
    @MrSergioPalermo 4 месяца назад

    А - Ижевск С - Пермь Е -Екатеринбург D - Тюмень В - Курган G - Челябинск F - Уфа ))))))

  • @vovanikotin
    @vovanikotin 4 месяца назад

    Как работает А-Life?

  • @vadimnosurname
    @vadimnosurname 4 месяца назад

    Очень круто объяснил. Спасибо. Только 1 вопрос: если у нас получится такая ситуация, что расстояние от точки А до D составило бы 5. А расстояние от Е до В доставило бы 3. Тогда по этой задаче, мы бы точку D не проверили? Или мы бы сравнили полученное в итоге время в конечной точке с временем в не изученных городах?

    • @vadimnosurname
      @vadimnosurname 4 месяца назад

      Уже обсуждался этот вопрос) надо сравнивать время)

  • @JesseJames-mh5kb
    @JesseJames-mh5kb 4 месяца назад

    Кратчайший путь на вертолёте муахахаха))0)0)

  • @Алексей-н1и9г
    @Алексей-н1и9г 4 месяца назад

    Годная локализация, автору респект.

  • @tawerteam9804
    @tawerteam9804 4 месяца назад

    классно

  • @tawerteam9804
    @tawerteam9804 4 месяца назад

    Топчик

  • @Andrey-vz1fe
    @Andrey-vz1fe 4 месяца назад

    Если бы FB весил 3, то алгоритм пропустил бы оптимальный маршрут. Есть улучшенный алгоритм Дейкстры

    • @IronBruh
      @IronBruh 4 месяца назад

      Тут этот момент вроде учтен, потому как ранее определенный "неоптимальный" маршрут через ребро АС оказался оптимальным, т.е. произошла переоценка

  • @iliaastafev5029
    @iliaastafev5029 4 месяца назад

    Хм, непонятно. Давай чуть поменяем веса: CD = 2 а EB = 3. Тогда находясь в С мы имеем оценку для E = 4 а для D = 5 и идем в E. Но в реальности маршрут ACEB окажется длиннее чем ACDB. Получается нам нужно делать оценку всех возможных следующих вершин из всех предыдущих - а это в любом случае экспоненциальная сложность.

    • @АлександрТитов-в8щ
      @АлександрТитов-в8щ 4 месяца назад

      Мне кажется, что вам необходимо алгоритм реализовать на бумажке, т.к. в голове тяжело одновременно удерживать большое кол-во переменных. Если вес граней изменить, то при проверке вершины "С" у вас "E" = 4, а "D" = 5. Вы проверите "Е" и увидите на вершине "B"=7, но вы не достигните конечного пункта. Т.к. на вершине "D" будет 5. И вам необходимо будет идти в вершину "D" и смотреть её пути. Вы увидите, что из "D" в "B" дорога будет занимать 6. И перезапишите. В оставшихся вариантах, у вас будет выбор идти в "B" или в "G", но в "G"=7, а в "B"=6. И вы достигните конечной вершины.

    • @iliaastafev5029
      @iliaastafev5029 4 месяца назад

      @@АлександрТитов-в8щ ну то есть как я и говорю - полный перебор графа. Я даже если на очередном шаге при проверке следующих вершин нашел самую дешевую то мне все равно нужно будет зайти и во все остальные и сделать проверки там. Сложность остается экспоненциальной.

    • @wilcodit
      @wilcodit 4 месяца назад

      Пример c ACEB и ACDB: Когда мы пришли в Е, мы еще не нашли кратчайший маршрут в B. Кратчайший маршрут до вершины мы находим в тот момент, когда эта вершина становится самой ближайшей среди неиследованных. Нам не нужно делать оценку из всех во все. Чтобы разобраться, можно еще раз посмотреть как происходит обновление оценок) Если каким-то образом получилась экспоненциальная сложность вместо полиномиальной - это уже точно не Дейкстра^_^

    • @iliaastafev5029
      @iliaastafev5029 4 месяца назад

      @@АлександрТитов-в8щ а я кстати понял. На 0:35 не совсем верно сформулирована задача возможно. Алгоритм Дейкстры не для того чтобы найти кратчайшее расстояние от А до Б, он для того чтобы найти кратчайшее расстояние от A до всех вершин.

    • @iliaastafev5029
      @iliaastafev5029 4 месяца назад

      @@wilcodit ты прав - теоретически получается O(V+E). Если при программировании мы все поиски и обновления сделаем за O(1) например инициализировав граф в виде хэш-таблицы, то итоговая сложность останется и на практике около O(V+E).

  • @namibo
    @namibo 4 месяца назад

    Добрый, применял такой подход в своей игре. А ты можешь так же А Star алгоритм объяснить?)

  • @antegros
    @antegros 4 месяца назад

    На си лучше не писать a[m], каждый раз будет вычисляться сдвиг, эффективнее двигать адрес указателем

  • @antegros
    @antegros 4 месяца назад

    На Си 2×10^8 на ооочень старом железе, обычно как раз от 2×10^9

  • @demidovmaxim1008
    @demidovmaxim1008 4 месяца назад

    Большое спасибо, это гениально

  • @Leonard_Gray
    @Leonard_Gray 4 месяца назад

    Это применяется в компьютерных играх для ИИ? Или где например? 🤔

    • @doctor_livsi_pod_phonk
      @doctor_livsi_pod_phonk 4 месяца назад

      В интернете чекни, мега много где, если даже не прям на нем, то на версии его.

    • @Leonard_Gray
      @Leonard_Gray 4 месяца назад

      Этот алгоритм универсален, поэтому его можно использовать в разных сферах. Например, в навигационных системах и картографии алгоритм Дейкстры может помочь проложить маршрут для пешеходов или автомобилей, избегая пробок и выбирая оптимальные дороги. В робототехнике этот алгоритм применяется для планирования движения роботов, чтобы они могли перемещаться в пространстве используя кратчайшие пути и обходя препятствия. В системах бронирования для поиска наиболее быстрых и дешевых билетов с учетом возможных пересадок. В компьютерных сетях алгоритм Дейкстры используется для определения оптимального маршрута передачи данных между узлами сети, минимизируя задержки и повышая эффективность передачи.

    • @Leonard_Gray
      @Leonard_Gray 4 месяца назад

      Маршрутизаторы в этих ваших интернетах на нём основаны разве? 🤔

    • @doctor_livsi_pod_phonk
      @doctor_livsi_pod_phonk 4 месяца назад

      @@Leonard_Gray я говорю загуглил, в этом плане я сказал...

  • @nihonam
    @nihonam 4 месяца назад

    А как может ребро быть с отрицательным весом?

    • @Leonard_Gray
      @Leonard_Gray 4 месяца назад

      Как воздушный шарик! \(^▽^)/ Он имеет самую обычную массу, но отрицательный вес.

    • @nihonam
      @nihonam 4 месяца назад

      @@Leonard_Gray но ведь тут речь идёт о потраченном на дорогу времени. оно не может быть отрицательным

    • @wilcodit
      @wilcodit 4 месяца назад

      Можно такой пример представить: Вес ребра - это его стоимость, если вес положительный, нужно заплатить, проходя по ребру, а если отрицательный, наоборот, получить деньги

    • @Leonard_Gray
      @Leonard_Gray 4 месяца назад

      Представьте себе, отрицательные значения люди представляли себе не всегда, как и ноль! ... Не знаю, к чему я это сказал. Просто любопытно это всё.

    • @МихаилПапурин
      @МихаилПапурин 4 месяца назад

      @@wilcodit С отрицательными весами тоже можно - добавится один проход по всему графу с запоминанием наименьшего отрицательного веса. И при учете ребра - из веса ребра вычитаем это значение.

  • @ЕвгенийСупремо
    @ЕвгенийСупремо 4 месяца назад

    Как по мне дучше чем остальные но обьяснение хромает

  • @ЕвгенийСупремо
    @ЕвгенийСупремо 4 месяца назад

    Обьснение достаточно плохое потому что нужно не только анимацию делать, а еще и например показывать на примере отрезков выписанных растояние и тд. А в конце с графом и престановкой это вообще epic fail

  • @testpu
    @testpu 4 месяца назад

    Очень доходчиво, спасибо

  • @skatler5741
    @skatler5741 4 месяца назад

    Почему это видео не попалось мне раньше ? )

  • @Djegur
    @Djegur 4 месяца назад

    Оч круто

  • @belxsi
    @belxsi 4 месяца назад

    Вот где ты был когда я информатику сдавал?

  • @-BezNika-
    @-BezNika- 4 месяца назад

    Лайк паписка. Желаю больше просмотров

  • @anonsd5521
    @anonsd5521 4 месяца назад

    Как по мне слишком затратный алгоритм, гораздо оптимальнее будет просто аннигилировать связи вершины, а связи везде суммировать. Например между городами C и B находится город D, который можно аннигилировать и получить сумму его связей, значит путь от C до B будет 5. Затем мы убираем C, между которыми 3 и 5, получаем 8 от А до В, 4 от А до Е, и 4 от А до А, что мы исключаем ввиду образования круга. Дальше так продолжаем, пока не останутся все возможные варианты добраться от А до В исключительно в виде связей, без вершин.

    • @evgenii_orwell
      @evgenii_orwell 4 месяца назад

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

    • @wilcodit
      @wilcodit 4 месяца назад

      Легким движением руки получаем О(n^3), вместо О(m log n)

    • @anonsd5521
      @anonsd5521 4 месяца назад

      @@wilcodit Если не трудно, откуда O(n^3)?

    • @wilcodit
      @wilcodit 4 месяца назад

      @@anonsd5521 Если хотим путь V -> T -> U заменить на ребро V -> U, то нужно перебирать вершины V, T, U

    • @anonsd5521
      @anonsd5521 4 месяца назад

      @@wilcodit Хорошо, спасибо за пояснение.

  • @МаксимАндреев-я1г
    @МаксимАндреев-я1г 4 месяца назад

    Слава ящерам

  • @EnergizerTheWhite
    @EnergizerTheWhite 4 месяца назад

    Преступно мало просмотров и лайков! И подписчиков. Призывай подписаться в конце видео, это работает

  • @priusfoxoriginal3061
    @priusfoxoriginal3061 4 месяца назад

    Вот вопрос, если бы, например cd было бы меньше чем ce,но bd было бы большим,то вроде как алгоритм не нашел кратчайшего пути

    • @Арт-ч2д
      @Арт-ч2д 4 месяца назад

      Дело в том, что алгоритм выбирает точку с наименьшим значением среди ВСЕХ неисследованных, и если эта точка и является конечной, то алгоритм останавливается, так как другие пути гарантированно длиннее (ведь путь к одной из ПРОМЕЖУТОЧНЫХ точек другого маршрута дольше, чем весь путь от начальной к конечной) . Например, будь, CD=0,5 и весь путь к D равнялся бы 3,5. Пусть даже BD=3, и тогда значение в точке B было бы равно 7,5 на этой итерации (если было бы больше или равно 8, то путь не установился, так как путь A-F-B был бы короче). Однако, в таком случае алгоритм не остановился бы, так как оставалась бы неисследованная точка E, значение в которой равно 4 (что меньше 7,5 в точке B и в других точках). Снова бы произошло "раскрытие" данного пути, и значение в точке B стало бы равно 6, что меньше любой другой неисследованной точки и, так как эта точка является конечной, гарантировалось бы, что данный путь кратчайший.

    • @ankofl
      @ankofl 4 месяца назад

      Да, но это не было оговорено в ролике, и с другими значениями ребер алгоритм работал бы неверно

    • @plotoh5087
      @plotoh5087 4 месяца назад

      ​@@ankoflвсе оговорено, по этому алгоритму на подобном примере все легко совершается. при условии что расстояние не меньше 0

  • @АнтонСамойлов-л3ц
    @АнтонСамойлов-л3ц 4 месяца назад

    Мне понравилось, всё чётко и ясно объяснено. Осталось сделать самостоятельную работу и запрограммировать дейкстру

  • @savvior3654
    @savvior3654 4 месяца назад

    Шикарное видео!

  • @МаксимСебелев-х5я
    @МаксимСебелев-х5я 4 месяца назад

    Анимация божественна и это не шутка

    • @skrupidonn
      @skrupidonn 4 месяца назад

      украл с англ канала)

  • @DexPoke
    @DexPoke 5 месяцев назад

    24 решена неверно

  • @MCdannis1
    @MCdannis1 5 месяцев назад

    в реальности, статистическая вероятность того что Алень, а это именно он, женится на потребляди во 2 и последующие разы уменьшается в геометрической прогрессии, к тому же остальные Алени не будут сидеть и ждать пока тухляк поюзает один Алень и она отпилит у него половину, потом другой с тем же результатом, у третьего уж точно включится мозг и он сможет усмотреть причинноследственные связи, я уж не говорю о работе МД каналов))) сокращающей поголовье Аленятины в промышленных масштабах, но как математическая задачка наверное интересно))

  • @kserocopy
    @kserocopy 5 месяцев назад

    Перехожу в 10 класс. Углубленно знаю питон + пишу GUI на джаве и знаю основы плюсов. Сейчас выбираю между плюсами и явой для дальнейшего усиленного изучения, ибо хочу попасть на всерос. Понимаю, что надо свичнуться на плюсы, но чето жалко оставлять яву :(((

    • @nodefff
      @nodefff 4 месяца назад

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

  • @karinalesnikova111
    @karinalesnikova111 5 месяцев назад

    Я давно сдала егэ, откуда?😅 тем более, инфу я не сдавала)) единственное, что я знаю об этом предмете со слов ребят из чата курса турбо - то, что это очень сложно

  • @mizantropoff
    @mizantropoff 5 месяцев назад

    А ты уверен в последней задаче снизил время выполнения? Пример который ты разбираешь - очень простой. фактически ты все сравниваешь только с первым массивом. А ведь массивы могут совпадать по первому элементу, но не совпадать с первым элементом первого массива. Неочевидно, сколько итераций будет - пойдет тот же самый перебор значений КАЖДОГО с КАЖДЫМ ,, да еще в в мапах. Может я чего то не понимаю. я не спорю. но объяснение алгоритма вообще неочевидное, тем более его преимущество перед обычным многоуровневым циклом (первые два обозначают сравниваемую пару, а третий - while() - работает по строкам двух массивов до момента прекращения совпадения элементов или превышения размера минимального из двух массивов. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out)); final int n = Integer.parseInt(reader.readLine()); int [][] arrays= new int[n][]; int [] sizes = new int [n]; for(int i = 0; i < n; i++) { sizes[i] = Integer.parseInt(reader.readLine()); arrays[i] = Arrays.stream(reader.readLine().split(" ")).mapToInt(Integer::parseInt).toArray(); } long sum = 0; for( int i = 0; i < n; ++i) { for(int j = i+1; j < n; ++j) { int k = 0; int tempSum = 0; while(k < Math.min(sizes[i], sizes[j]) && arrays[i][k] == arrays[j][k]) { tempSum++; k++; } sum+=tempSum; } } writer.write(sum +""); writer.close(); } } Я понимаю, что тут типа рекурсии, но инвариант рекурсии тоже не очевиден из твоего объясгнения, очень все смазано... Уж извини... Очень бы хотелось посмотреть на код. Если не сложно.. Очень. Предыдущая задача мне понравилась - со стэками круто получилось, я обычно стараюсь решать до объяснения. а потом смотреть объяснение, ну я там нагородил конечно, сначала сделал мапы рабов по ключу начальника - но туда вошли все рабы, не только непосредственные, поэтому пришлось переводить его в мап непосредственных начальников для каждого раба, а потом уже по мапам начальников вычислял барьер.

    • @wilcodit
      @wilcodit 5 месяцев назад

      Идея в том, что благодаря мапам, у нас всегда одинаковый префикс (внутри класса). И мы сравниваем всегда по столбику. В результате получается, что мы на каждый элемент смотрим один раз

    • @mizantropoff
      @mizantropoff 5 месяцев назад

      @@wilcodit Только этих одинаковых префиксов может быть много даже по первой цифре. У некоторых первая цифра будет совпадать но она будет равна скажем 1. У других тоже первая цифра будет совпадать но она будет скажем равна 5. И т.ж. Я не совсем уловил структуру и формирования этих классов может?

  • @Кот_с_усами
    @Кот_с_усами 5 месяцев назад

    Автор видео прям поверхностно изучил тэтрис ведь допустим s блок и s блок идеально сочиться пример: первый s блок перемещаем максимально в лево, второй s блок уже используется такую стратегию: сместить максимально в лево и потом сдвинуть на четыре квадрата в право и когда тот коснётся земли на один квадрат в лево

  • @ars1kk
    @ars1kk 6 месяцев назад

    Молодец, объяснил лучше всех! Так держать!