CF1578E Easy Scheduling

题目描述

Eonathan Eostar 决定学习多处理器系统的魔法。他有一棵高度为 $h$ 的满二叉任务树。一开始,树中只有根节点的任务是就绪的。每一时刻,有 $p$ 个进程选择至多 $p$ 个就绪任务并执行它们。之后,父任务已被执行的任务会在下一时刻变为就绪。一旦任务变为就绪状态,它会一直保持就绪直到被执行。 你需要计算系统完成所有任务所需的最少时刻数。

输入格式

输入的第一行为测试组数 $t$($1 \leq t \leq 5 \cdot 10^5$)。接下来的 $t$ 行,每行描述一个测试用例。每个测试用例包含两个整数 $h$($1 \leq h \leq 50$)和 $p$($1 \leq p \leq 10^4$),分别表示满二叉树的高度和进程数。保证所有测试用例互不相同。

输出格式

对于每个测试用例,输出一个整数,表示系统完成所有任务所需的最少时刻数,每个答案占一行。

说明/提示

我们来看样例输入的第二个测试用例。有一棵高度为 $3$ 的满二叉树,有两个进程。第一时刻,只有一个就绪任务 $1$,$p_1$ 执行它。第二时刻,有两个就绪任务 $2$ 和 $3$,两个进程分别执行它们。第三时刻,有四个就绪任务 $4$、$5$、$6$ 和 $7$,$p_1$ 执行 $6$,$p_2$ 执行 $5$。第四时刻,有两个就绪任务 $4$ 和 $7$,两个进程分别执行它们。因此,系统共用 $4$ 个时刻完成所有任务。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1578E/98a14360f938976e2072b80e9c0ef58237d08d77.png) 由 ChatGPT 4.1 翻译