| Codeforces Round 1074 (Div. 4) |
|---|
| Закончено |
Фермер Джон отправляет корову участвовать в Международной Коровьей Олимпиаде, но ему слишком лень писать задачи для конкурса, поэтому он делает следующее самое разумное: организует турнир по борьбе!
У фермера Джона есть $$$2^n$$$ коров, стоящих в ряд, при этом $$$i$$$-я корова имеет уровень навыка $$$a_i$$$. Каждая корова начинает в стопке, содержащей только её саму, и уровень навыка стопки равен XOR-сумме$$$^{\text{∗}}$$$ уровней навыка всех коров в ней. Например, если стопка состоит из коров с уровнями навыка $$$1, 3, 9$$$ снизу вверх, то уровень навыка стопки равен $$$1 \oplus 3 \oplus 9 = 11$$$.
Следующий процесс повторяется до тех пор, пока не останется только одна стопка.
Чтобы сделать это более захватывающим, фермер Джон создал $$$q$$$ зелий, так что $$$i$$$-е зелье делает уровень навыка коровы, которая его выпьет, равным $$$c_i$$$. Фермер Джон хочет протестировать свои зелья на коровах, поэтому он даёт $$$i$$$-е зелье корове $$$b_i$$$, а затем проводит турнир. Для каждого испытания фермер Джон хочет знать, сколько коров находится выше коровы, которая получила зелье, в финальной стопке.
Зелья фермера Джона быстро теряют свою силу, поэтому, когда турнир заканчивается, корова, которая получила зелье, вернёт свой уровень навыка к тому, каким он был изначально. Другими словами, все запросы независимы.
$$$^{\text{∗}}$$$XOR-сумма массива $$$x_1, x_2, \ldots, x_y$$$ равна $$$x_1 \oplus x_2 \oplus x_3 \ldots x_{y-1} \oplus x_y$$$, где $$$\oplus$$$ обозначает побитовую операцию XOR.
Первая строка входных данных содержит одно целое число $$$t$$$ ($$$1 \leq t \leq 10^4$$$) — количество наборов входных данных.
Первая строка каждого набора содержит два целых числа $$$n$$$ и $$$q$$$ ($$$1 \le n \le 18$$$, $$$1 \le q \le 2 \cdot 10^5$$$) — где $$$2^n$$$ равно количеству коров в турнире, а $$$q$$$ — количество зелий.
Вторая строка содержит $$$2^n$$$ целых чисел $$$a_1, a_2, \ldots, a_{2^n}$$$ ($$$1 \le a_i \le 2^{30}$$$) — уровни навыка коров.
Следующие $$$q$$$ строк содержат по два целых числа $$$b_i$$$ и $$$c_i$$$ ($$$1 \le b_i \le 2^n$$$, $$$1 \le c_i \le 2^{30}$$$) — индекс коровы, которая получает зелье, и новый уровень навыка коровы.
Гарантируется, что сумма $$$2^n$$$ по всем наборам не превышает $$$2^{18} = 262144$$$, а сумма $$$q$$$ по всем наборам не превышает $$$2 \cdot 10^5$$$.
Для каждого испытания выведите, сколько коров находится выше коровы, которая получила зелье, в финальной стопке.
42 21 3 5 71 14 81 21 31 41 23 41 8 3 10 2 5 7 15 38 121 92 12 11 2 3 43 1
100150231
Для первого раунда первого примера уровни навыка коров не меняются, и матчи проходят следующим образом:
Визуализация раунда показана ниже.
Для второго раунда первого примера уровень навыка коровы $$$4$$$ теперь $$$8$$$, и матчи проходят следующим образом:
| Название |
|---|


