CF497E.Subsequences Return
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
假设 sk(n) 表示数字 n 在 k 进制下的各位数字之和。例如,s2(5)=s2(1012)=1+0+1=2,s3(14)=s3(1123)=1+1+2=4。
定义整数序列 a0,...,an−1 为 aj=sk(j)modk。你的任务是计算序列 a0,...,an−1 有多少个不同的子序列。请将结果对 109+7 取模后输出。
序列 a1,...,ak 称为序列 b1,...,bl 的一个子序列,如果存在一组下标 1≤i1<...<ik≤l ,使得 a1=bi1,...,ak=bik。特别地,空序列(即不包含任何元素的序列)是任意序列的一个子序列。
输入格式
第一行包含两个用空格分隔的整数 n 和 k(1≤n≤1018,2≤k≤30)。
输出格式
输出一行,表示不同子序列的数量,对 109+7 取模。
输入输出样例
输入#1
4 2
输出#1
11
输入#2
7 7
输出#2
128
说明/提示
在第一个样例中,序列 ai 为 (0,1,1,0)。所有可能的子序列有:
(),(0),(0,0),(0,1),(0,1,0),(0,1,1),(0,1,1,0),(1),(1,0),(1,1),(1,1,0)。
在第二个样例中,序列 ai 为 (0,1,2,3,4,5,6)。该序列的所有子序列正好是从 0 到 6 的所有递增序列。显然有 27=128 个这样的序列。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?