Дзеркальна схема#13046

Дзеркальна схема (Розбір)

Розв'язання

Сигнал може перебувати лише у двох станах: або .

Тому дію будь-якого відрізка можна описати матрицею розміру 2\times2.

Для матриці нехай — максимальна винагорода, яку можна отримати, якщо сигнал входить у відрізок у стані та виходить із нього у стані .

Якщо такий перехід неможливий, його значення дорівнює .

Нехай два сусідні відрізки описуються матрицями та .

Тоді їх об'єднання описується max-plus множенням:

(A\otimes B)[x][z] = \max_{y\in\{0,1\}} (A[x][y]+B[y][z]).

Таким чином, матриці двох сусідніх відрізків можна об'єднати за сталий час.

Для кожної вершини дерева відрізків будемо зберігати п'ять матриць.

  • — жоден елемент не змінено;

  • — змінений відрізок починається на лівій межі;

  • — змінений відрізок закінчується на правій межі;

  • — змінений відрізок знаходиться всередині поточного відрізка;

  • — змінено весь поточний відрізок.

Нехай вершина складається з лівого сина та правого сина .

Якщо нічого не змінюється, то

N=N_L\otimes N_R.

Для стану існує два варіанти.

Змінений відрізок може закінчитися всередині лівого сина:

P_L\otimes N_R.

Або весь лівий син змінений, а відрізок продовжується у правому сині:

W_L\otimes P_R.

Тому

P= \max( P_L\otimes N_R, W_L\otimes P_R ).

Аналогічно,

S= \max( N_L\otimes S_R, S_L\otimes W_R ).

Для стану існує п'ять можливостей.

Змінений відрізок повністю знаходиться у лівому сині:

F_L\otimes N_R.

Або повністю знаходиться у правому сині:

N_L\otimes F_R.

Він може закінчуватися точно на правій межі лівого сина:

S_L\otimes N_R.

Або починатися точно на лівій межі правого сина:

N_L\otimes P_R.

Нарешті, він може перетинати межу між двома синами:

S_L\otimes P_R.

Отже,

F= \max( F_L\otimes N_R, N_L\otimes F_R, S_L\otimes N_R, N_L\otimes P_R, S_L\otimes P_R ).

Якщо змінюється весь відрізок, то

W=W_L\otimes W_R.

Лист дерева

Для одного елемента нехай — його матриця переходів для початкового значення d_i.

Нехай — матриця переходів після заміни

d_i\leftarrow9-d_i.

Тоді

N=A,

а

P=S=W=B.

Для відрізка з одного елемента неможливо вибрати непорожній змінений відрізок, який знаходиться строго всередині нього, тому всі значення матриці спочатку дорівнюють .

Щоб побудувати матрицю переходів для цифри , розглянемо обидва можливі початкові стани сигналу.

Якщо

d\bmod4=0,

стан змінюється на протилежний.

Якщо

d\bmod4=1,

стан не змінюється.

Якщо

d\bmod4=2,

стан стає рівним .

Якщо

d\bmod4=3,

стан стає рівним .

Якщо після проходження елемента сигнал опинився у стані , отримуємо винагороду w_{i,s}.

Запити

Для запиту [l,r] отримаємо п'ять матриць, що відповідають цьому відрізку, за допомогою дерева відрізків.

Перед позицією сигнал знаходиться у стані .

Тому відповіддю буде максимальне значення серед обох можливих кінцевих станів у всіх п'яти матрицях:

N,\ P,\ S,\ F,\ W.

Матриця відповідає випадку, коли ми не виконуємо жодної заміни.

Інші чотири матриці разом покривають усі можливі непорожні відрізки, на яких виконується заміна.

Оновлення

При зміні значення d_i перебудовуємо відповідний лист дерева.

Після цього перераховуємо всі вершини на шляху від цього листа до кореня.

Доведення коректності

Кожен можливий змінений відрізок відносно поточного відрізка належить до одного з типів , , або .

Формули об'єднання розглядають усі можливі положення зміненого відрізка відносно межі між двома синами.

Max-plus множення матриць коректно об'єднує як переходи стану сигналу, так і отримані винагороди для двох послідовних відрізків.

Отже, кожна з п'яти матриць зберігає максимальну винагороду для відповідного типу зміни.

Для запиту ми беремо максимум серед усіх значень, досяжних із початкового стану , у матрицях , , , та .

Це враховує як випадок без заміни, так і кожен можливий непорожній відрізок для заміни.

Тому отримане значення є точно шуканою максимальною винагородою.

Складність

Кожна матриця має сталий розмір, тому об'єднання двох вершин дерева відрізків займає .

Кожен запит та кожне оновлення обробляють O(\log n) вершин.

Отже, загальна складність становить

O((n+q)\log n)

за часом та

за пам'яттю.