定义超级斐波那契数列如下:给定整数 k ,该序列的前 k 项均为 1 ;对于 n > k k" />,第 n 项为前 k 项之和,即 S_n = S_n-1 + S_n-2 + ... + S_n-k 现给定整数 k 和查询次数 q ,每次查询一个正整数 x ,请输出该序列的第 x 项对 10^9 + 7 取模后的值。
第一行输入两个整数 k, q (1 ≤ k ≤ 10^6;1 ≤ q ≤ 3× 10^5) ; 此后 q 行,每行输入一个正整数 x (1 ≤ x ≤ 10^6) 。
输出 q 行,每行输出一个整数,表示对应查询的答案对 10^9 + 7 取模后的值。
2 5 1 2 3 4 5
1 1 2 3 5
考点:动态规划
数据规模 k ≤ 1e6 | 限制 1 秒 / 256MB | 标准输入输出
推荐方向:动态规划
本题切入点
k 阶斐波那契的递推可以用「前缀和数组」把转移降到 O(1):S[n] = 2·S[n−1] − S[n−k−1],全程取模。
把问题拆成子问题,用状态表示「已处理到哪儿」,靠转移方程递推。
思路框架(动态规划 通法 · 非本题专属)
实现要点:一般是「先枚举阶段,再枚举状态,最后枚举决策」三层循环;空间大时可滚动数组优化。
复杂度:时间 O(状态数 × 转移代价) | 空间 O(状态数)
该范式的通法易错点
对照本题
样例 1:输入 2 5 / 1 / 2 / 3 / 4 / 5 → 输出 1 / 1 / 2 / 3 / 5
在这组测试数据中:
当 x = 1 时, S_1 = 1 ;
当 x = 2 时, S_2 = 1 ;
当 x = 3 时, S_3 = S_2 + S_1 = 1 + 1 = 2 ;
当 x = 4 时, S_4 = S_3 + S_2 = 2 + 1 = 3 ;
当 x = 5 时, S_5 = S_4 + S_3 = 3 + 2 = 5 。
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2026年春招-美团-技术岗-第一批笔试;2026年春招-美团-测试岗-第一批笔试;2026年春招-美团-硬件开发岗-第一批笔试 等。