题目:
一个长度为k的整数序列b1,b2,…,bk(1≤b1≤b2≤…≤bk≤N)称为“好序列”当且仅当后一个数是前一个数的倍数,即bi+1是bi的倍数对任意的i(1≤i≤k-1)成立。
给定N和k,请算出有多少个长度为k的“好序列”,答案对1000000007取模。
输入:
输入共1行,包含2个用空格隔开的整数N和k。
输出:
输出共1行,包含一个整数,表示长度为k的“好序列”的个数对1000000007取模后的结果。
样例输入:
3 2
样例输出:
5
这篇博客探讨了一种动态规划(DP)问题,即寻找长度为k且每个数都是其前一个数倍数的整数序列。博主首先解释了问题背景和输入输出格式,然后分享了样例输入和输出。在理解错误的初步想法后,博主揭示了大爷提供的正确思路,即使用DP状态转移方程f[i][j*k] = f[i][j*k] + f[i-1][j]。最后,博主给出了问题的代码实现。
一个长度为k的整数序列b1,b2,…,bk(1≤b1≤b2≤…≤bk≤N)称为“好序列”当且仅当后一个数是前一个数的倍数,即bi+1是bi的倍数对任意的i(1≤i≤k-1)成立。
给定N和k,请算出有多少个长度为k的“好序列”,答案对1000000007取模。
输入共1行,包含2个用空格隔开的整数N和k。
输出共1行,包含一个整数,表示长度为k的“好序列”的个数对1000000007取模后的结果。
3 2
5
285

被折叠的 条评论
为什么被折叠?