Я пытаюсь решить следующую проблему:Найти количество элементов с весом к в диапазоне (с обновлениями и запросами)
Учитывая массив элементов с целыми весами (произвольный порядок), мы можем иметь 2 возможных операции:
Запрос: выведите количество элементов, которые имеют вес k, в диапазоне от x до y.
Обновление: Изменение веса элемента на определенном индекса V
Пример:.
Учитывая массив: [1,2,3,2,5,6,7,3 ]
Если запрос для количества элементов с весом 2 от индекса 1 до 3, то ответ будет 2.
Если мы изменяем элемент с индексом 2, чтобы иметь вес 2, то повторите тот же запрос, ответ будет равен 3.
Это, конечно, проблема с деревом сегментов (с использованием точечных обновлений). Тем не менее, я столкнулся с проблемой здесь - каждый сегмент будет удерживать ответ только за 1 индекс. Следовательно, кажется, что я должен использовать векторы в моем дереве сегментов. Но это будет слишком сложно. Кроме того, я не уверен, как это сделать.
Может ли кто-нибудь посоветовать мне лучшее решение?