var
f:array[0..2000,0..2000]of longint;
n,kk,i,j,k,ans:longint;
begin
readln(n,kk);
for i:=1 to n do f[1,i]:=1;//1是每个数的倍数
for i:=1 to kk-1 do
for j:=1 to n do//n个数
for k:=1 to n div j do//n是n div j的倍数
f[i+1,j*k]:=(f[i+1,j*k]+f[i,j])mod 1000000007;//取模
for i:=1 to n do ans:=(ans+f[kk,i])mod 1000000007;
writeln(ans);
end.
2017.6.4测试 题五 序列
本文介绍了一种使用二维动态规划解决特定数学问题的方法。通过定义一个二维数组f,该数组用于存储中间结果,并通过迭代填充这个数组来解决问题。具体实现包括两层嵌套循环,外层循环遍历特定范围内的整数,内层循环处理每个整数的倍数关系,最终计算出问题的解答。

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



