算法导论15-6公司聚会计划Planning a company party

Professor Stewart is consulting for the president of a corporation that is planning
a company party. The company has a hierarchical structure; that is, the supervisor
relation forms a tree rooted at the president. The personnel office has ranked each
employee with a conviviality rating, which is a real number. In order to make the
party fun for all attendees, the president does not want both an employee and his
or her immediate supervisor to attend.
Professor Stewart is given the tree that describes the structure of the corporation,
using the left-child, right-sibling representation described in Section 10.4. Each
node of the tree holds, in addition to the pointers, the name of an employee and
that employee’s conviviality ranking. Describe an algorithm to make up a guest
list that maximizes the sum of the conviviality ratings of the guests. Analyze the

running time of your algorithm.

算法导论15-6公司聚会计划Planning a company party_第1张图片

考虑到AB两点之间对其为根的树的取分没有任何影响

记x.in为x在聚会时左子树的最大分数加上自身,

x.no为x不在聚会时左子树的最大分数

x.no = sum{max{y[i].in, y[i].no}} from i = 1 to n

x.in = sum{y[i].no} from i = 1 to n

一直运算到根,对比root.in和root.no,取大值

你可能感兴趣的:(algorithm,learning)