Блог пользователя broly_1033

Автор broly_1033, история, 4 года назад, По-английски

Hi everyone, I was studying how to solve query problems on trees using Euler Tour. I was wondering how to solve path query problems on trees. We can solve problems which can be solved by maintaining a prefix array (for e.g. sum of nodes in path from a to b), but how to solve say, node with maximum value in path from a to b. Can anyone guide me on this?
More specifically, sum(a, b) = sum(root, a) + sum(root, b) — 2*sum(root, lca(a, b)) + val(lca). I was using this to solve these problems using Euler Tour. But I cannot find maximum using this (CSES Path Queries 2).
Q1. Can we apply segment trees on Euler Tour array? Q2. How to solve problems like CSES Path Queries 2?

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
4 года назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Yah you need to use heavy light decomposition, which basically uses segment tree.

I hope this helps

https://mirror.codeforces.com/blog/entry/81317

»
3 года назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

My O(Nlog^2N) code is TLEing in the last test, any idea why ?