Loud_Scream's blog

By Loud_Scream, history, 7 years ago, In English

Hi, Codeforces. I've recently found an interesting problem:

Given an undirected tree with n vertices. Find out how many different ways you can orient the edges of the tree so that the result graph will contain exactly m vertices with zero outdegree modulo 109 + 7,   (1 ≤ n ≤ 1000, 0 ≤ m ≤ n).

Could someone help me with this problem and explain the solution?

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

»
7 years ago, # |
  Vote: I like it -7 Vote: I do not like it

dp[v][cnt][flag] is the number of ways to make cnt vertices with zero outdegree in the subtree of v, and flag is 1 if the vertex v have a zero outdegree else it is 0 (so n * m * 2 memory)

to recalc this dp you just go with dfs and then you do knapsack-like solution like in this task 815C