题库首页 › 青少年软件编程(C语言) › 题目 11374

漂亮的序列 对于给定的整数 m,我们称一个序列是“漂亮”的,如果它包含至少 2 个整数,并且有 2 个相邻数字的差不超过m。你的任务是计算一个给定的 n 个正整数的序列中,有多少个子序列是漂亮的。 时间限制:6000 内存限制:65536 输入 输入第一行给出 2 个正整数 n 和 m (2 ≤ n ≤ 105, 1 ≤ m ≤ 103),随后一行给出序列中 n 个不超过 105 的正整数。同行数字间以空格分隔。 输出 输出原始序列中漂亮子序列的个数。因为答案可能非常大,所以你需要输出对 1000000007 (109 + 7) 取模后的结果。 样例输入 4 2 5 3 8 6 样例输出 8 提示 样例解释: 1、子序列下标为 {1, 2}, 对应值为 {5, 3}; 2、子序列下标为 {1, 4}, 对应值为 {5, 6}; 3、子序列下标为 {3, 4}, 对应值为 {8, 6}; 4、子序列下标为 {1, 2, 3}, 对应值为 {5, 3, 8}; 5、子序列下标为 {1, 2, 4}, 对应值为 {5, 3, 6}; 6、子序列下标为 {1, 3, 4}, 对应值为 {5, 8, 6}; 7、子序列下标为 {2, 3, 4}, 对应值为 {3, 8, 6}; 8、子序列下标为 {1, 2, 3, 4}, 对应值为 {5, 3, 8, 6}。

正确答案:参考程序(Python):漂亮的序列。计数含至少一对相邻差≤m的子序列数。动态规划:统计所有子序列,模1e9+7。样例5 3 8 6,m=2→8。核心:DP计数子序列。

试卷来源:202412 青少年等级考试C/C++真题四级

本卷相关题目

在线做题 同科目题库