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

Автор ajecc, история, 7 лет назад, По-английски

You are given a graph and a number k. Output the biggest set of nodes such as every node has at least k adjacent nodes that are also in the set. (The solution should have a better complexity than O(n^2), n = number of nodes) Thanks!

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

»
7 лет назад, # |
  Проголосовать: нравится +18 Проголосовать: не нравится

A constructive solution works. We take a candidate set S, which starts as the whole graph, and iteratively reduce it removing invalid nodes until we arrive at the solution. At each point, if some node in S has less than k adjacent nodes in S, remove it and decrease the degree of all nodes adjacent to it by 1.

This works because every node you remove has no chance to be in the solution set, and the final set will be a solution.

  • »
    »
    7 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    I understand, but what is the complexity of this algorithm? I have a hard time figuring out :\