• Как решать подобные задачи?

    wataru
    @wataru Куратор тега Алгоритмы
    impelix, Ну, в самом начале можно сделать любой шаг. А в x надо считать сумму всех выведенных run. Грубо говоря cout << "run " << m - x%m << "\n"; x += m - x%m;

    Так же, в случае, когда floor(x/m) != k можно сдвинуть границу не выводя никаких команд.

    Еще надо очень аккуратно со смыслом l и r. Это границы которые искомая величина может принять? тогда в случае, если вы знаете, что m < ответа, надо присваивать l = m+1;. Если вы поняли, что ответ может быть и m, то надо присваивать без 1.

    Еще аккуратно посмотрите случай l==r-1: а не зависнет ли программа? Она потом спросит про l, но может ли прийти к выводу, что ответ >= m и не сдвинуть границы?

    Edit: и да, в k надо накапливать сумму всех ответов от системы, а не последний ответ. Суммарное количество оборотов.
  • Как решать подобные задачи?

    wataru
    @wataru Куратор тега Алгоритмы
    polak228, Да не, можно приспособить и бинарный поиск. Надо только помнить сколько вы метров уже суммарно прошли и сколько целых оборотов сделали.
  • Как решать подобные задачи?

    wataru
    @wataru Куратор тега Алгоритмы
    Тут только проблема в том, что последующие команды run k вы выполняете не с начала круга, а уже с накопленным пробегом. Так что можно перескочить за фишиш даже сделав шаг короче длины круга.
  • Что можно убрать чтобы оптимизировать затраты памяти?

    wataru
    @wataru Куратор тега C++
    impelix, охохо! ni <= 10^18. Вот вы столько цифр пытались запихать в массив. Конечно, оно падает по памяти, тут нужны миллионы терабайт. Да, надо складывать, как я написал в последнем комментарии: группа с группой.
  • Посчитать многоугольник почему не работает програма?

    wataru
    @wataru Куратор тега Математика
    no-pasaran, Я отредактировал свой ответ. Перечитайте его, пожалуйста.
  • Что можно убрать чтобы оптимизировать затраты памяти?

    wataru
    @wataru Куратор тега C++
    impelix, А дайте задачу целиком. Что там за ограничения по числам? По памяти и по времени?

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

    Тут надо прочитать пары (цифра, количество), развернуть их списки, а потом суммировать погрупно. Если группы одинакового размера - сложили их. если нет, то откусили от более длинной групы кусок равный более короткой. Обработали. Из-за переноса можно в ответ вписать сразу несколько групп. В ответе в конце надо будет подряд идущие одинаковые группы цифр слить в одну группу. Ну и развернуть перед выводом.

    Надо порисовать на бумажке, что будет, если сложить "aa...a", "bb....b" и еще перенос (0 или 1) в правый разряд.
  • Посчитать многоугольник почему не работает програма?

    wataru
    @wataru Куратор тега Математика
    no-pasaran,
    вы неправильно поняли вопрос
    Это потому что вы условие задачи так и не сформулировали. Надо эти ветора подвигать, чтобы сложился многоугольник? Их можно вращать или нет? Можно их расставлять в любом порядке?
  • Что можно убрать чтобы оптимизировать затраты памяти?

    wataru
    @wataru Куратор тега C++
    Что за ошибку то выдает система? В коде виду 2 ошибки - отсутствие фигурных скобок у else, и все ту же запись за границу массива в цикле. Вы там после всех resize'ов можете получить массив b га один короче массива a. Вы там +1 к length делаете как бы для этого переноса, но цикл суммирования все равно гоните до length-1. Можно прибавлять перенос, если он не 0, тогда выхода за границу нк будет. Но испоавьте код, чтобы массивы были одинаковой длины.
  • Что можно убрать чтобы оптимизировать затраты памяти?

    wataru
    @wataru Куратор тега C++
    impelix, или заведите отдельный вектор для ответа. Количество пар можно подсчитать перед выводом (считайте различия в массиве отдельным циклом). Цифры можно хранить в char - тоже экономия.
  • Как построить путь из одной координаты в другую, используя промежуточные координаты из списка?

    wataru
    @wataru Куратор тега Алгоритмы
    s4q, Надо задать к этому массиву еще и список, между какими двумя центрами можно возить товары. Обычно это только между отделением и родительским ему а так же между любыми двумя отделениями верхнего уровня.

    Вы должны задать эти ограничения. По координатам их вывести невозможно, ибо границы областей/поселений нарезаны весьма произвольно. Если вы их не задаете, то ответ остается такой-же: кратчайший путь будет без промежуточных точек, по прямой.
  • Как построить путь из одной координаты в другую, используя промежуточные координаты из списка?

    wataru
    @wataru Куратор тега Алгоритмы
    s4q, но тогда кратчайший путь - прямая из начала в конец (скорее всего не посещая ни одну точку).

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

    wataru
    @wataru Куратор тега Алгоритмы
    s4q, Путь должен проходить через промежуточные точки в заданном порядке или как угодно? Надо посетить все промежуточные точки, или можно пропускать их?

    Это координаты в мире, т.е. путь строится по дорогам условным google maps? Или дело на плоскости, и можно проводить прямые? В тегах вы указали "графы", может быть у вас есть произвольный граф на котором надо решить задачу?

    Путь надо кратчайший, я так понимаю?
  • Как быстро умножают края матриц?

    wataru
    @wataru Куратор тега Алгоритмы
    rPman, Ох, напутал я. Для произведения матриц оно не применимо, но перемножение полиномов, длинных чисел и свертки на матрицах - делаются через FFT. Есть какие-то извращенные алгоритмы вроде этого (страница 31+), но это совсем не то, что я представлял, когда упоминал FFT выше.
  • Как уменьшить диапазон поиска для неизвестного числа?

    wataru
    @wataru Куратор тега Математика
    HrustHr, Т.е. 167 - это диапазон, а не искомое, неизвестное число? А если само число окажется 166, то уже первое -4 переведет в отрицательные числа.
  • Как уменьшить диапазон поиска для неизвестного числа?

    wataru
    @wataru Куратор тега Математика
    HrustHr, Т.е. у вас есть не данное число X, Вы из него вычитаете 4, получаете неизвестное X-4. Дальше что? Как вообще можно из неизвестного числа что-то вычитать? Ну допустим, вы 40 раз вычли, получили X-160. 42 раза вычли, получили X-168 - все неизвестные числа. Как вы определяете, что дальше вычитать не надо?
  • Как уменьшить диапазон поиска для неизвестного числа?

    wataru
    @wataru Куратор тега Математика
    HrustHr, Всмысле, вам 167 уже дано? Зачем тогда из него вычитать что-то?
  • Как уменьшить диапазон поиска для неизвестного числа?

    wataru
    @wataru Куратор тега Математика
    HrustHr,
    если , к примеру вычитаеш 4 из 167 40 раз


    А почему из 167? Если вы ищете число 167, то его искать не надо, вот оно уже есть: "167". Если же вы знаете, что X от 1 до 167, то вычитать 4 нельзя. А вдруг искомое число 166? Вы его вычитанием 4 пропустите. Если вы можете сказать, что перескочили через искомое X - то это уже и есть тот самый критерий, какое-то дополнительное свойство X, которое можно использовать, например, для бинарного поиска.
  • Как уменьшить диапазон поиска для неизвестного числа?

    wataru
    @wataru Куратор тега Математика
    HrustHr, вам в прошлый раз пытались объяснить, что мы не телепаты, просто взять и выкинуть из перебора почти все числа - нельзя. Только если вы дадите полное и строгое описание свойств искомого числа X, может быть шанс на какое-то ускорение перебора. Но, если это действительно криптография, то шанса вообще нет.
  • Как уменьшить диапазон поиска для неизвестного числа?

    wataru
    @wataru Куратор тега Математика
    Rsa97, по-моему, этот кадр уже был здесь несколько месяцев назад с несколькими похожими вопросами. Собственно задачу так и не рассказал ни разу, а только намеками. Чувак явно ломает криптографию и держит в тайне свою гениальную идею.