树 - 元素影响另一个元素。搜索特定元素

时间:2016-11-01 15:40:48

标签: algorithm tree

我应该创建一个算法,但我不知道从哪里开始。

我有一棵树,例如:

(1)                     1
                     /  |  \
                    2   3   4
                  / | \     | \
                 5  6  7    8  9
                            |
                            10

其中一个要素(人)受到感染。我们需要分配多少药物(从0到1)以防止感染k人。如果受感染的孩子的比例将大于药物的数量,那么父母和所有其他孩子也将被感染。不仅最低级别的节点可以在开始时被感染,但是当开始时感染的孩子有了孩子时,那些孩子就不会被感染。该算法应该适用于500000个元素。

(1)树的一些例子:

INPUT: 3(防止感染的人数)

                        1
                     /  |  \
                    2   3   4
                  / | \     | \
                 5  6  7    8  9
                            |
                            10     <-- The easiest target
 Wee see that if 10 will be infected, the only child from 8, then the drugs
 should be on level 0.6666666 (2/3) to prevent getting the virus to more than 3  
 people (because 10 and 8 are infected, but to infect 4 more than (2/3) his
 children should be infected and if 4 would be infected then 9 also). 

输出: 0.6666666

INPUT: 4(防止感染的人数)

                        1
                     /  |  \
                    2   3   4
                  / | \     | \
                 5  6  7    8  9
                            |
                            10     <-- The easiest target
 If the drug level will be on 0.4444444 (4/9) and the target will be 10 then the 
 virus will infect (10->8->4->9).

输出 0.4444444

0 个答案:

没有答案