• Как осуществляется поиск по тексту?

    @X_Warlock
    Простейший вариант - использовать префикс-функцию (алгоритм Кнута-Морриса-Пратта). Тогда поиск будет достаточно медленным на больших текстах, однако прост в реализации.
    Можно использовать суффиксный массив, тогда поиск по тексту будет заметно быстрее, однако потребует каждый раз при изменении текста перестраивать суффиксный массив. Вариант для оптимизации - строить его только при запросе на поиск, а при последующих запросах поиска(без изменения текста) использовать уже построенный суффиксный массив.
    Ответ написан
  • Как реализовать такой алгоритм?

    @X_Warlock
    Во-первых, long - это int32, так что если у вас mod больше 2^15, лучше всё-таки взять long long.
    Во-вторых, строчку
    S = (S * c) % mod;
    следует заменить на
    c*=base;
    c%=mod;
    c*=c;
    c%=mod;
    (если вы хотите следовать алгоритму), кроме того, поставить условие на то, что temp[i] - это не последний бит битовой записи числа - иначе мы лишний раз поднесём к квадрату

    Следующий код работает правильно:
    long long bp(long long base, long long power)
    {
      std::vector<bool> temp = toBinary(power);
      std::vector<long> result;
      long long c = 1;
    
      for (auto i = 0; i<temp.size(); i++)
      {
        if (temp[i] == 1)
        {
          c = (c*base)%mod;
        }
        if(i!=temp.size()-1)
            c*=c;
        c%=mod;
      }
      return c;
    }


    Я не понял смысла переменной S, если объясните, возможно, ваш код получится править "мягче" (кажется, я переписал половину вашего кода, извините)

    Вообще говоря, функция бинарного возведения в рекурсивном виде выглядит так:
    long long binpow(long long base, long long power)
    {
        if(power==0)
            return 1;
        if(power%2)
            return (binpow(base, power-1)*base)%mod;
        long long tmp = binpow(base, power/2);
        return (tmp*tmp)%mod;
    }

    Возможно, вам будет легче написать нерекурсивую функцию с пониманием рекурсивной.
    Ответ написан
    Комментировать
  • Что значит эта строка(с++)?

    @X_Warlock
    Вероятно, это функция, которая принимает указатель на массив float-ов и размер массива.
    (тип size_t - целочисленный тип, предназначен специально для указания размеров контейнеров и массивов)
    Ответ написан
    Комментировать
  • Требуют написать булеан мощности 4, а что быть если кол-во элементов больше, урезать элементы в множестве?

    @X_Warlock
    Читайте вопрос внимательней:
    ... для довільної підмножини множини...

    Так что можете спокойно взять любые 4 элемента множества Z и работать с ними.

    P.S. понимание условия задачи - уже половина решения задачи, так что рекомендую уделять внимание каждому слову любой математической задачи.
    Ответ написан
    4 комментария
  • Как выдрать из игры текстовые квесты?

    @X_Warlock
    Тут есть все квесты в текстовом виде, если я правильно понял суть задания.
    Ответ написан
    4 комментария