Запити на дереві#236

Запити на дереві

1 секунда
256 мегабайтів
Складна

Дано зв'язний граф з вершинами та n-1 ребром, тобто дерево. Вершина є коренем дерева. На вершині записано ціле число a_v. Вартість дерева визначається як XOR сума всіх його значень. Дано запитів, кожен з яких містить два цілі числа та . Кожен запит змінює всі значення a_u на a_u \oplus x, де належить піддереву вершини , а позначає операцію "виключне або". Як ми всі знаємо, ця задача є дуже простою для наших учасників, але якби все було так просто, ця задача не з'явилася б на цій олімпіаді. Ви знаєте, що деякі запити були змінені злим Антоном. Тому вам потрібно знайти суму вартостей за модулем всіх 2^q дерев, які можна отримати, застосовуючи деякі (можливо, ніякі) запити до дерева.

Вхідні дані

Перший рядок містить два цілих числа (1 \le n \le 2 \cdot 10^5) та (1 \le q \le 2 \cdot 10^5) — кількість вершин у дереві та кількість запитів відповідно.

Другий рядок містить цілих чисел a_i (0 \le a_i < 2^{60}) — значення, записані на вершинах дерева.

Наступні n-1 рядки містять два цілих числа та кожен — ребра заданого дерева.

Наступні рядків містять два цілих числа (1 \le v \le n) та (0 \le x < 2^{60}) кожен — опис запитів.

Вихідні дані

Виведіть одне ціле число — відповідь на задачу.

Приклади

Приклад 1

Loading
Loading

Оцінювання

  1. ( балів): q \le 2;

  2. ( балів): q \le 10;

  3. ( балів): q \le 20;

  4. ( балів): a_i, x < 2;

  5. ( балів): a_i, x < 1024;

  6. ( балів): a_i, x < 2^{18};

  7. ( балів): без додаткових обмежень.