1679
правок
Изменения
Нет описания правки
:{{tick|ticked=1}} интервики, нет ни одной внутренней ссылки на другие разделы про дерево отрезков.:{{tick}} опечатки:: и операций должны удовлетворять:склоняем правильно: массовые операций:: выполнять операций'''необходимо отвечать запросы''':: массовой операций (да что же ты так это слово не любишь?)'''Так называемое "проталкиванием" '''
:: блин, да ты во всем конспекте неправильно склоняешь «операции»
::: '''Все еще не исправлено'''
:{{tick}} у вас в лабе было как минимум две массовые операции по изменению (присваивание и добавление), а запрос был на минимум. Так что надо как-то разобраться, какую комбинацию операций изменения можно использовать и как с этим работать (то есть нужно при реализации определять какой-то приоритет на них и все такое).
:: Все еще одна операция на изменение и одна на сумму. Кажется, чтобы это сделать, надо просто объединить присвоение и добавление в одну массовую операцию, если я не ошибаюсь. Тогда получится одна хитрая операция изменения и одна нормальная для запроса.
:{{tick}} псевдокод
:: \subset должно быть \subseteq, кажется.
:: выдели операторы (if, while) жирным.
::: '''return тоже оператор'''
:: пробел перед открывающейся скобкой, в которой аргументы зачем-то
:: почему int get_ans, и int val. Это должны быть какие-то абстрактные типы.
::: '''Все еще есть int ans'''
::: '''лучше использовать CamelCase в псевдокоде для именования типов (вроде MyType). А еще проще написать просто T value и т.д., это всем будет понятно'''.
::: get_ans называется query.
:{{tick}} ans — сумма на отрезке по операции \oplus. Не сумма а просто результат. :{{tick}} да, третье свойство дистрибутивности действительно кажется лишним. :{{tick|ticked=1}}
:: с несколькими подряд идущими элементами. --> «на отрезке»
:: «Для реализации вторая операция должна быть ассоциативной.» Вторая — это какая?