1
Структура данных для карты по интервалам
Пусть nnn будет целым числом, и пусть ZZ\mathbb{Z} обозначает множество всех целых чисел. Обозначим через [a,b][a,b][a,b] интервал целых чисел {a,a+1,a+2,…,b}{a,a+1,a+2,…,b}\{a,a+1,a+2,\dots,b\} . Ищу структуру данных для представления отображения f:[1,n]→Zf:[1,n]→Zf:[1,n] \to \mathbb{Z} . Я хочу, чтобы структура данных поддерживала следующие операции: get(i)get(i)\text{get}(i) должен вернуть.f(i)f(i)f(i) set([a,b],y)set([a,b],y)\text{set}([a,b],y) должен обновить fff так, чтобы f(a)=f(a+1)=⋯=f(b)=yf(a)=f(a+1)=⋯=f(b)=yf(a)=f(a+1)=\cdots=f(b)=y , …