CF414B Mashmokh and ACM
#include<bits/stdc++.h> using namespace std; int n,k,vis[2020][2020]; int dfs(int last,int num){ if(vis[last][num])return vis[last][num]; if(num>k){ return 1; } int tot=0; for(int i=1;i*last<=n;i++){ tot=(tot+dfs(i*last,num+1))%1000000007; } vis[last][num]=tot; return tot; } int main(){ scanf("%d%d",&n,&k); printf("%d",dfs(1,1)%1000000007); return 0; }

浙公网安备 33010602011771号