A - это массив, содержащий не более 10 целые числа.Множественность целых чисел в диапазоне
Мы должны выполнить 2 вида операций над этим массивом в сложности log (N) (где N = количество элементов в A).
Операция 1, учитывая v, я, J мы должны добавить v к A [K](я < < = к = у).
Операция 2, учитывая я & J вычислить (А [я] * A [I + 1] * A [I + 2] * .... * А [J])% М , (M является простым и будет одинаковым для всех операций).
Будет почти 10 Операции, которые предстоит выполнить.
Если это невозможно в журнале (N), то какова максимальная сложность операций?
Для операции 1, вы действительно имеете в виду 'add v' или' multiply by v'? Для 'multiply by v' мое решение может быть адаптировано более легко. Я все еще думаю, что деревья сегментов являются жизнеспособной опцией для решения «O (log N)», но я не вижу, как сделать операцию 1 до сих пор. Вы отметили это с помощью spoj, можете ли вы ссылаться на проблему spoj? – IVlad
@IVlad Я также понял, что для ** умножить на v ** это может быть сделано деревом сегментов или двоичным индексированным деревом. Это не специфическая проблема spoj, но знание трюка поможет мне в решении нескольких проблем из spoj. –
Попытка работать с этим; Я также убежден, что сублинейный возможен. Я еще не полностью решил проблемы, но я готов поспорить, что это будет связано с тем, что (целые числа от '0' до' M-1', добавление по модулю 'M', умножение по модулю' M') образует поле. –