CF414B Mashmokh and ACM 【序列DP】

来源:互联网 发布:unity3d 材质球shader 编辑:程序博客网 时间:2024/06/05 19:50

DP

dp[j][i]代表以j为末尾,i为长度的序列个数

那么

dp[j的1倍2倍3倍4倍...][i+1]+=dp[j][i]

初始化情况为

所有的

dp[i][1]置为1

#include <cstdio>#include <cstdlib>#include <iostream>#include <algorithm>#include <cstring>#include <cmath>const int MOD=1000000007;using namespace std;int dp[2222][2222];int main(){#ifndef ONLINE_JUDGEfreopen("G:/1.txt","r",stdin);//freopen("G:/2.txt","w",stdout);#endifint N,K;scanf("%d%d",&N,&K);for(int i=1;i<=N;i++)dp[i][1]=1;    //dp[1][1]=1;for(int j=1;j<=N;j++){for(int i=1;i<=K;i++){for(int p=j;p<=N;p+=j){dp[p][i+1]+=dp[j][i];dp[p][i+1]%=MOD;}}}int ans=0;for(int i=1;i<=N;i++){ans+=dp[i][K];ans%=MOD;}printf("%d\n",ans);}


 

 

0 0
原创粉丝点击