首页 > 试题广场 >

小红的大模型推理 Token 调度

[编程题]小红的大模型推理 Token 调度
  • 热度指数:441 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小红目前正在负责一家大型 AI 实验室的推理资源调度工作。为了提高大语言模型(LLM)的并行推理效率,她需要为当前任务队列中的一系列请求分配 Token 资源(单位:k)。
队列中的每个推理请求都有一个对应的优先级评分。在分配资源时,小红设定了如下调度规则:
1. 优先级评分小于或等于 0 的请求会被视为无效任务或系统预留任务,不参与本次 Token 分配,即分配到的 Token 数量为 0。
2. 这些无效任务会将整个请求序列切分成若干个由连续有效任务(优先级评分大于 0)构成的子段。
3. 对于每个有效任务子段,段内的每个请求至少要分配 1k 个 Token。
4. 在同一个子段内部,如果某个请求的优先级评分严格高于它左边或右边相邻的任务,那么它分配到的 Token 数量必须严格多于该相邻任务。
小红希望在完全满足上述规则的前提下,计算出分配给所有任务的 Token 总数最小值是多少。

输入描述:
输入包含一行,为若干个由英文逗号隔开的整数,代表任务队列中每个推理请求的优先级评分。
任务总数 latex 满足 latex
每个优先级评分 latex 满足 latex


输出描述:
输出一个整数,表示小红最少需要分配的 Token 总数(以 k 为单位)。
示例1

输入

3,5,2,0,8

输出

5

说明

在该样例中,优先级为 0 的任务将序列分割为两个有效子段:[3, 5, 2] 和 [8]。
- 对于子段 [3, 5, 2],为了满足相邻优先级更高则分配更多的原则,最少分配方案为 [1, 2, 1],该段总和为 4。
- 对于子段 [8],只有一个任务,最少分配 1k Token,该段总和为 1。
- 优先级为 0 的任务不分配 Token。
总计最小分配数量为 4 + 1 = 5。
头像 linX615
发表于 2026-04-29 15:11:16
#include <cstddef> #include <iostream> #include <sstream> #include <string> #include <vector> using namespace std; typed 展开全文