#L4911. 「POI2017 R1」破坏 Sabotage
「POI2017 R1」破坏 Sabotage
题目描述
题目译自 XXIV Olimpiada Informatyczna — I etap Sabotaż
在一个不便透露名称的组织里,上司与下属的关系可以用一棵树来表示——除了最高领导,每个人都有且仅有一个直属上司。员工按入职顺序编号,上司的编号总是小于下属。
监督委员会担心组织内部可能潜伏着破坏者,想挑起员工叛乱。为了防患于未然,他们希望保持员工的高昂士气(比如发奖金、办活动、买桌上足球桌)。士气用一个 到 之间的实数 表示。如果某个员工发现,自己(直接或间接)下属中有超过 比例的人叛乱,他也会加入叛乱,并强迫所有直接和间接的下属跟随。破坏者是某个员工,会在某刻率先叛乱(但不强迫下属加入)。
委员会想知道,为了让叛乱最多影响 名员工,士气的最小值是多少。请你写个程序帮他们算出来。
输入格式
输入第一行包含两个整数 和 ,用空格分隔,分别表示员工总数和叛乱人数上限。员工编号从 到 ,最高领导为 号。
接下来的 行描述组织结构,第 行有一个整数 ,表示编号为 的员工的直属上司是 号员工。
输出格式
输出一行一个实数,表示所需的最小士气值。结果与正确答案相差小于 即视为正确。
样例
输入
9 3
1
1
2
2
2
3
7
3
输出
0.6666666667
士气低于 时,若 号员工是破坏者,他叛乱后会导致 人(, , , 号)叛乱,超过上限
附加样例
- 领导加 个直属下属;
- 名员工的随机测试;
- 名员工,除最晚入职者外,每人有几个直属下属。
数据范围与提示
详细子任务附加限制及分值如下表所示。
子任务 | 附加限制 | 分值 |
---|---|---|
1 | 22 | |
2 | 10 | |
3 | 13 | |
4 | 无附加限制 | 55 |