Zlobober's blog

By Zlobober, history, 3 years ago, translation, In English,

Unfortunately Codeforces fails to show formulas in an editorial and I can't even press on "Preview" button :( While it doesn't work as intended, I put a bit ugly pdf-version of an editorial here. Unfortunately without model solution sources yet.

Russian editorial

English editorial

 
 
 
 
  • Vote: I like it
  • +35
  • Vote: I do not like it

»
3 years ago, # |
Rev. 2   Vote: I like it +33 Vote: I do not like it

" ... Pascal triangle and started to investigate properties of binomial coefficients located on the same line. That was the wrong way :)"

This is also a good way, the "Pascal triangle" tells me that we are finding coefficients of xc in (xa + xb)0 + (xa + xb)1 + (xa + xb)2 + ..., then it is easy to see S(C) = S(C-A) + S(C-B).

»
3 years ago, # |
  Vote: I like it +3 Vote: I do not like it

Want to share my solution to E. It's seems to be isomorphic to what is written in the editorial but If I was to implement what is in editorial I would get much harder solution.

Let's root the tree in any vertex, now suppose pair of vertices u,v (au < av). If v is not in the subtree of u then it adds 1 to answer of all vertices in subtree of u. If it in the subtree of to — some direct child of u then it adds 1 to answer of all vertices except vertices in subtree of to which means add 1 everywhere and add -1 to subtree of to

Now process vertices u in decreasing order of its value in groups of vertices of same value: you need to know how many vertices v in each subtree (it's a range query) and outside of subtree of u (it's all others), and add answers to some subtrees. Adding to subtrees is either adding to a range in tin order or may be done offline.

Code