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

Автор Pawan_Lahoti, история, 17 месяцев назад, По-английски

I know about centroid decomposition but I cannot understand the solution given on USACO guide...Can someone please give a simple explanation to this problem https://cses.fi/problemset/task/2080

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

»
17 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by Pawan_Lahoti (previous revision, new revision, compare).

»
14 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

We are exploiting the fact that for any two nodes (u,v), the lca in their centroid tree divides it into two disjoint paths.

Thus when we find a centroid, we effectively want to calculate the summation of cnt_i[x] * cnt_j[y] where cnt_i denotes the cnt of depth = x in child i of centroid and x + y == k. Because of the above mentioned fact, we won't get any repetition.

Time complexity: for each layer of centroids , we will do O(N) operations and because the height of centroid tree is limited to log(N), Time Complexity will be O(Nlog(N)).