#L4893. 「POI2014 R2」超级计算机 Supercomputer
「POI2014 R2」超级计算机 Supercomputer
题目描述
Bajtazar 打造了一台设计新颖的超级计算机。它可配备多个相同处理器,每个处理器每单位时间执行一条指令。程序不再按顺序运行,而是呈树状结构。每条指令可能有零条、一条或多条后续指令。执行完一条指令后,其后续指令可按任意顺序执行,甚至在不同处理器上并行运行。若超级计算机有 个处理器,每单位时间最多并行执行 条指令。
Bajtazar 准备运行一个程序。他希望充分利用资源,思考处理器数量如何影响运行速度。请你编写程序,帮他计算给定程序和处理器数量下,最短的程序执行时间。
输入格式
输入第一行包含两个整数 ,分别表示程序的指令数和查询次数。
第二行包含 个整数 , 表示第 次查询的处理器数量。
第三行包含 个整数 , 表示指令 的前驱指令编号。指令编号为 到 ,指令 为程序起点。
输出格式
输出一行,包含 个整数,第 个整数表示使用 个处理器时,程序的最短执行时间。
样例
输入
20 1
3
1 1 1 3 4 3 2 8 6 9 10 12 12 13 14 11 11 11 11
输出
8

程序执行过程如下表所示:
| 时间 | 指令 |
|---|---|
| 1 | |
| 2 | 2, 3, 4 |
| 3 | 5, 6, 7 |
| 4 | 8, 10 |
| 5 | 9, 12 |
| 6 | 11, 13, 14 |
| 7 | 15, 16, 17 |
| 8 | 18, 19, 20 |
附加样例
- ,指令树为路径;
- ,小型随机测试;
- ,所有指令直接跟随指令 ;
- ,指令形成满二叉树;
- ,指令树为长路径。
数据范围与提示
对于 的数据,。
对于其中 的数据,。