码迷,mamicode.com
首页 > 其他好文 > 详细

CodeForces 414B - Mashmokh and ACM

时间:2016-07-24 22:38:05      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:

给你长度为 的整数数列b1, b2, ..., bl(1 ≤ b1 ≤ b2 ≤ ... ≤ bl ≤ n)

如果这个数列被称为好的,那么每个元素都可以整除下一个元素

给你n和k,去找到长度为k的好数列的个数

 

dp[任意i][1] = 1;

dp[i的倍数][长度k] = dp[i][长度k-1] + 1;

 

 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4 const int MOD = 1000000007 ;
 5 int n,k;
 6 long long dp[2005][2005]={0};
 7 int main()
 8 {
 9     scanf("%d%d",&n,&k);
10     for(int i = 1;i <= n; i++)
11     {
12         dp[i][1] = 1;
13         for(int j = i;j<=n; j+= i)
14         {
15             for(int v = 2 ;v<=k;v++)
16             {
17                 dp[j][v] +=dp[i][v-1];
18                 if(dp[j][v]>=MOD) dp[j][v] -= MOD;
19             }
20         }
21     }
22     long long sum=0;
23     for(int i = 1;i <= n ; i++)
24     {
25         sum += dp[i][k];
26         if(sum>MOD) sum -= MOD;
27     }
28     printf("%I64d\n",sum);
29 }

 

CodeForces 414B - Mashmokh and ACM

标签:

原文地址:http://www.cnblogs.com/nicetomeetu/p/5701573.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!